Hello,

im2double in package image doesn't work with uint16 images due to a
missing '/' (division).

The bug is present in image 1.0.10 (tested) and appears also to be
present in 1.0.12 / trunk.


Testcase:

im2double(uint16(65535))


Expected result:

ans = 1


Actual result:

error: A(I): Index exceeds matrix dimension.
error: called from:
error:   /usr/share/octave/packages/3.2/image-1.0.10/im2double.m at
line 43, column 11


Please consider proposed trivial patch below.

Regards,
S



Index: trunk/octave-forge/main/image/inst/im2double.m
===================================================================
--- trunk/octave-forge/main/image/inst/im2double.m    (revision 7188)
+++ trunk/octave-forge/main/image/inst/im2double.m    (working copy)
@@ -40,7 +40,7 @@
     case "uint8"
       im2 = double(im1)/255;
     case "uint16"
-      im2 = double(im1)(pow2(16)-1);
+      im2 = double(im1)/(pow2(16)-1);
     otherwise
       error("im2double: unsupported image class");
   endswitch

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Octave-dev mailing list
Octave-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to