Changes

Jump to navigation Jump to search

Image package

4,008 bytes added, 19 August
m
→‎Patches: imref2d, imref3d integralImage were added
The {{Forge|image|image package}} is part of the octave-forge Octave Forge project. See its {{Forge|image|homepage}} for the latest release. <div class="tocinline">__TOC__</div>
== Development ==
Follows an incomplete list of stuff missing in the image package to be matlab compatible. Bugs are not listed here, [https://savannah.gnu.org/bugs/?func=search&group=octave search] and [https://savannah.gnu.org/bugs/?func=additem&group=octave report] them on the bug tracker instead.
 
=== Roadmap ===
 
The following are missing targets for the next minor release of the image package (version 2.8.0). Small bug fixes, build fixes, and regressions may still be released before in a patch release (Version 2.6.X).
 
* add ellipse properties to {{codeline|regionprops}} (see bug {{bug|44100}}) ([http://hg.code.sf.net/p/octave/image/rev/7cf22a478792 done])
* speed up {{codeline|regionprops}} for large images with many small objects (probably work around for loop with labeled == labelid)
* support passing {{codeline|bwconncomp}} output to {{codeline|regionprops}} (and then fix {{codeline|bwpropfilt}} to use that instead of a labeled image)
* ND support on {{codeline|imfilter}}
* check if {{codeline|normxcorr2}} is Matlab compatible and investigate making use of {{codeline|fftconvn}} since it's likely to receive large input
* investigate implementing the missing deconvolution functions (see patch {{patch|8571}})
* anything else that is done or submitted before the above are done
=== Missing functions ===
* activecontour
* adapthisteq
* [https://savannah.gnu.org/patch/?8824 affine2d]
* affine3d
* applycform
* axes2pix
* bwconvhull
* bwdistgeodesic
* bwlookup
* bwpack
* bwtraceboundary
* bwulterode
* bwunpackchromadapt* colorcloud
* convmtx2
* corner
* dct2
* dctmtx
* imbinarize
* deconvblind
* deconvlucy
* deconvreg
* [https://savannah.gnu.org/patch/?9365 deconvwnr]
* decorrstretch
* [https://savannah.gnu.org/patch/?9593 demosaic]
* dicomanon
* dicomdisp
* dicomuid
* dpxinfo
* dpxread
* dpxinfo
* fan2para
* fanbeam
* getrect
* gradientweight
* grayconnected
* graycoprops
* grayconnected
* graydiffweight
* hdrread
* hdrwrite
* houghlines -- (see hough_line)
* houghpeaks
* iccfind
* iccread
* idct2
* ifanbeam
* illumgray
* illumpca
* illumwhite
* im2java2d
* ImageAdapter
* imageinfo
* [https://savannah.gnu.org/patch/?9717 imapplymatrix]
* imapprox
* imbinarize
* imdistline
* imellipse
* imextendedmax
* imextendedmin
* imfindcircles
* imfreehand
* imfuse
* imhandles
* imhistmatch
* imhmax
* imhmin
* imimposemin
* imline
* immagbox
* imoverview
* imoverviewpanel
* [https://savannah.gnu.org/patch/?8722 impixelinfo]* [https://savannah.gnu.org/patch/?8722 impixelinfoval]* impixelregion
* impixelregionpanel
* impixelregion
* implay
* impoint
* integralBoxFilter
* integralBoxFilter3
* [https://savannah.gnu.org/patch/?9606 integralImage]
* integralImage3
* interfileinfo
* isicc
* isrset
* [https://savannah.gnu.org/patch/?9600 lin2rgb]
* makecform
* makeConstrainToRectFcn
* makehdr
* makeresampler
* [https://savannah.gnu.org/patch/?9602 multithresh]
* nitfinfo
* nitfread
* openrset
* otsuthresh
* para2fan
* projective2d
* regionfill
* rgb2lin
* roifill
* roifilt2
* [https://savannah.gnu.org/patch/?9509 roipoly]
* rsetwrite
* ssim
* truesize
* visboundaries
* viscircles
* warp
* [https://savannah.gnu.org/patch/?8060 whitepoint]* wiener2* [https://savannah.gnu.org/patch/?9603 xyz2double]* [https://savannah.gnu.org/patch/?9603 xyz2uint16]
</div>
|-
! bug !! bug title !! status
|-
| {{bug|38085}} || image package: fails to build with --enable-64 (entropyfilt) || Confirmed
|-
| {{bug|38087}}|| image package: graycomatrix incompatibilities with matlab || None
|-
| {{bug|38345}}|| image package: __spatial_filtering__() always returns class double || Confirmed
|-
| {{bug|41674}}|| image package: temporary arrays in imresize are doubles || None
| {{bug|44831}}|| image package: imrotate - different dimensions of output matrix || Confirmed
|-
| {{bug|45088}}|| image package: rangefilt requires domain and image to have equal number of dimensions || Patch ReviewedIn Progress
|-
| {{bug|46745}}|| image package: imresize default method (bicubic) Matlab incompatible for the border pixels|| None
| {{bug|48529}}|| image package: compilation warnings under Mac OSX|| None
|-
| {{bug|50071}}|| OF image: bwfill(...,4) in Octave behaves like bwfill(...,8) in MATLAB and vice versa|| None
|-
| {{bug|50151}}|| image package: normxcorr2 is not compatible with Matlab|| None
|-
| {{bug|50732}} || Image package: infinite error loop when assigning a strel (class) object to a vector|| Confirmed
|-
| {{bug|50783}} || image package: imlincomb is not compatible with Matlab || none
|-
| {{bug|50874}} || bwdist call causes application crash || Confirmed
|-
| {{bug|51420}} || [octave forge] (image) imrotate is less tolerant to missing argument than Matlab || None
| {{bug|51980}} || [octave forge] (image) Failing unit test for edge|| None
|-
| {{bug|5198152006}} || [octave forge] (image) 'makecform' feature request || Confirmed|-| {{bug|52119}} || [octave forge] (image) Add 'reflect' padding option to imfilter || None|-| {{bug|52715}} || [octave forge] (image) Add full data range option to ycbcrfunc conversions || None|-| {{bug|52959}} || [octave forge] (image) histeq is not compatible with Matlab || None|-| {{bug|55059}} || [octave forge] (image) Failing unit test for otf2psfgrayslice || NoneIn Progress
|-
| {{bug|5198255202}} || [octave forge] (image) Failing unit test imresize fails for nlfiltermethod nearest and image of 1 row || NoneConfirmed
|-
| {{bug|52119}} || [octave forge] (image) Add 'reflect' padding option to imfilter || None
|}
* {{patch|8571}}: image package: three deconvolution routines (Wiener, RL, RLTV)
* {{patch|8824}}: added affine2d class
* {{patch|92359509}}: image Image package: improve filtering functions (stdfilt, entropyfilt) and add tests (also medfilt2, ordfilt2, rangefilt)simple implementation of roipoly function* {{patch|92449593}}: image package: regionprops[Octave Forge] (Image) New function demosaic.m - new properties ConvexHull, ConvexImage, ConvexArea, Solidityfrom bug #50708* {{patch|93549600}}: image package[Octave Forge] (Image) New functions: new function wiener2lin2rgb.m and lrgb2lin.m* {{patch|93609602}}: [octave forge] (image package: new function otsuthresh.m) multithresh* {{patch|93659603}}: image package[Octave Forge] (Image) New functions: new function deconvwnrxyz2double.m, xyz2single.m* {{patch|9407}}: image package: new function houghpeaks, xyz2uint16.m* {{patch|94129717}}: [octave forge] (image package: ) new function houghlines.mimapplymatrix* {{patch|94489729}}: [octave forge] (image package: new function imfindcircles.m) -- rgb2xyz conversion with adapted whitepoint* {{patch|94499730}}: [octave forge] (image package: ) new function viscircles.mimfuse
== Image Processing Functions (this section is under construction) ==
{{Note| This section is a still under construction so the list of Image Processing functions by topic, including missing functions, related bugs and patched, and some alternativesis incomplete.}}
Note: This section is under construction so this a list is still incomplete of Image Processing functions by topic including: missing functions, related bugs and patches, and some alternatives. Note:
=== Basic Read and Write Image Files ===
! Function !! Octave Package Version !! Related Bugs and Patches !! Alternatives !! Notes
|-
| imfinfo || function is in Octave core || || ||
|-
| imread|| function is in Octave core || || [http://kyamagu.github.io/mexopencv/matlab/imread.html cv.imread] from [https://github.com/kyamagu/mexopencv mexopencv] ||
|-
|}
 
'''Missing:''' ''dicomanon, dicomdisp, dicomuid, dpxinfo, dpxread, interfileinfo, interfileread, nitfinfo, nitfread
''
 
=== High Dynamic Range Images - ''Not implemented'' ===
 
=== Large Image Files - ''Not implemented'' ===
=== Type Conversion ===
| adaptthresh || - || || [http://kyamagu.github.io/mexopencv/matlab/adaptiveThreshold.html cv.adaptiveThreshold] from [https://github.com/kyamagu/mexopencv mexopencv]||
|-
| demosaic || - || {{bug|50708}} {{patch|9593}} || [http://kyamagu.github.io/mexopencv/matlab/demosaicing.html cv.demosaicing] from [https://github.com/kyamagu/mexopencv mexopencv] ||
|-
| gray2ind || function is in Octave core || || ||
| mat2gray || < 1.0.0 || || ||
|-
| multithresh || - || {{patch|9602}} || ||
|-
| otsuthresh || - || {{patch|9360}} || graythresh || otsuthresh(hist) is equivalent to graythresh (hist)
|-
| rgb2gray || < 1.0.0 function is in Octave core || {{bug|53654}} || ||Octave version 4.4.0 and above
|-
| rgb2ind || function is in Octave core || || ||
|-
|}
 
=== Color ===
 
{| class="wikitable" style="text-align: center"
|-
! Function !! Octave Package Version !! Related Bugs and Patches !! Alternatives || Notes
|-
| colorangle || 2.10.0 (unreleased) || || ||
|-
| lab2double || 2.6.0 || || ||
|-
| lab2rgb || 2.6.0 || || ||
|-
| lab2uint16 || 2.6.0 || || ||
|-
| lab2uint8 || 2.6.0 || || ||
|-
| lab2xyz || 2.6.0 || || ||
|-
| lin2rgb || - || {{patch|9600}} || ||
|-
| ntsc2rgb || 2.8.0 || || ||
|-
| rgb2lab || 2.6.0 || || ||
|-
| rgb2lin || - || {{patch|9600}} || ||
|-
| rgb2ntsc || 2.8.0 || || ||
|-
| rgb2xyz || 2.6.0 || || ||
|-
| rgb2ycbcr || < 1.0.0|| || ||
|-
| whitepoint || - || {{patch|8060}} || ||
|-
| xyz2double || - || {{patch|9603}} || ||
|-
| xyz2lab || 2.6.0 || || ||
|-
| xyz2rgb || 2.6.0 || || ||
|-
| xyz2uint16 || - || {{patch|9603}} || ||
|-
| ycbcr2rgb || 2.2.0|| || ||
|-
|}
 
'''Missing:''' ''applycform, chromadapt, colorcloud, iccfind, iccread, iccroot, iccwrite, illumgray, illumpca, illumwhite, imapprox, isicc, makecform''
 
=== Synthetic Images ===
 
{| class="wikitable" style="text-align: center"
|-
! Function !! Octave Package Version !! Related Bugs and Patches !! Alternatives || Notes
|-
| checkerboard || 2.2.0 || || ||
|-
| imnoise || 2.2.2 || || ||
|-
| phantom || 2.6.2 || || ||
|-
|}
 
=== Basic Display ===
 
{| class="wikitable" style="text-align: center"
|-
! Function !! Octave Package Version !! Related Bugs and Patches !! Alternatives || Notes
|-
| imshow || function is in Octave core || || ||
|-
| montage || - || || ||
|-
|}
 
'''Missing:''' ''imfuse, immovie, implay, imshowpair, iptgetpref, iptprefs, iptsetpref, warp''
=== Image Filtering ===
| convmtx2 || - || || ||
|-
| entropyfilt || 1.0.9 || {{patch|9235}} || ||
|-
| fibermetric ||- || || ||
| integralBoxFilter3 ||- || || ||
|-
| integralImage ||- || {{patch|9606}} || [http://kyamagu.github.io/mexopencv/matlab/integral.html cv.integral] from [https://github.com/kyamagu/mexopencv mexopencv] ||
|-
| integralImage3 || - || || ||
|-
| medfilt2 || < 1.0.0 || {{patch|9235}} || ||
|-
| medfilt3 || - || || ||
| normxcorr2 || 2.0.0 || {{bug|50151}} || ||
|-
| ordfilt2 || 1.0.9 || {{patch|9235}} || ||
|-
| padarray || < 1.0.0 || || ||
|-
| rangefilt || 1.0.9 || {{bug|45088}} {{patch|9235}} || ||
|-
| stdfilt || 1.0.9 || {{patch|9235}} || ||
|-
| wiener2 || dev 2.8.0|| || ||
|-
|}
| imabsdiff || 2.0.0 || || ||
|-
| imadd || 2.0.0 || || ||
|-
| imapplymatrix || - || {{patch|9717}} || ||
|-
| imcomplement || 1.0.6 || || ||
| imlincomb || 2.0.0 || || ||
|-
| immultiply || 2.0.0 || || ||
|-
| imsubtract || 2.0.0 || || ||
|-
|}
=== Morphological Operations ===
 
{| class="wikitable" style="text-align: center"
|-
! Function !! Octave Package Version !! Related Bugs and Patches !! Alternatives || Notes
|-
| applylut || < 1.0.0 || || ||
|-
| bwareaopen || 2.2.0 || || ||
|-
| bwhitmiss || < 1.0.0 || || ||
|-
| bwlookup || -- || || ||
|-
| bwmorph || < 1.0.0 || {{bug|51884}} || ||
|-
| bwulterode || -- || || ||
|-
| conndef || < 1.0.0 || || ||
|-
| imbothat || 2.0.0 || || ||
|-
| imclearborder || 2.4.0 || || ||
|-
| imclose || < 1.0.0 || || ||
|-
| imdilate || < 1.0.0 || || ||
|-
| imerode || < 1.0.0 || || ||
|-
| imextendedmax || 2.8.0 || || ||
|-
| imextendedmin || 2.8.0 || || ||
|-
| imfill || 2.6.0 || || ||
|-
| imhmax || 2.8.0 || || ||
|-
| imhmin || 2.8.0 || || ||
|-
| imimposemin || 2.8.0 || || ||
|-
| imopen || < 1.0.0 || || ||
|-
| imreconstruct || 2.4.0 || || ||
|-
| imregionalmax || 2.4.0 || || ||
|-
| imregionalmin || 2.4.0 || || ||
|-
| imtophat || < 1.0.0 || || ||
|-
| iptcheckconn || 2.0.0 || || ||
|-
| offsetstrel || -- || || ||
|-
| strel || 2.2.0 || {{bug|50732}} || ||
|-
| watershed || 2.6.0 || || ||
|-
|}
 
=== Image Transforms ===
 
{| class="wikitable" style="text-align: center"
|-
! Function !! Octave Package Version !! Related Bugs and Patches !! Alternatives || Notes
|-
| dct2 || || || ||
|-
| dctmtx || || || ||
|-
| fanbeam || || || ||
|-
| fan2para || || || ||
|-
| fftshift|| || || ||
|-
| fft2 || || || ||
|-
| hough || || || ||
|-
| houghlines || || || ||
|-
| houghpeaks || || || ||
|-
|idct2 || || || ||
|-
|ifftshift|| || || ||
|-
|ifft2|| || || ||
|-
|iradon|| || || ||
|-
|para2fan|| || || ||
|-
|radon|| || || ||
|-
|}
 
=== Graphical Interface Interaction ===
 
{| class="wikitable" style="text-align: center"
|-
! Function !! Octave Package Version !! Related Bugs and Patches !! Alternatives || Notes
|-
| imellipse || - || || ||
|-
| imfreehand || - || || ||
|-
| imline || - || || ||
|-
| immagbox || - || || ||
|-
| imoverview || - || || ||
|-
| imoverviewpanel || - || || ||
|-
| impixelinfo || - || {{patch|8722}} || ||
|-
| impixelinfoval || - || {{patch|8722}} || ||
|-
| impixelregion || - || || ||
|-
| impixelregionpanel || - || || ||
|-
| implay || - || || ||
|-
| impoint || - || || ||
|-
| impoly || - || || ||
|-
| imrect || - || || ||
|-
| imscrollpanel || - || || ||
|-
| iptgetpref || - || || ||
|-
| iptprefs || - || || ||
|-
| iptsetpref || - || || ||
|-
|}
* Obs: implay, iptgetpref, iptprefs, iptsetpref functions are on Basic Display section too...
[[Category:Octave-Forge]][[Category:Missing functions]]
188

edits

Navigation menu