本以为MATLAB的图像扫描显示很简单,先创建一个三维数组A,全部赋值为255(显示为白色),然后读入图像数组B,将B的元素逐行赋值给A,每赋值一次,显示A一次,中间停顿0.01秒即可。想得简单,做起来必然复杂,程序完成后,提示:Error using ==> image
TrueColor CData contains element out of range 0.0 <= value <= 1.0。imshow()函数可以运行,但完全不是我想要的结果,百思不得其解,那是个崩溃啊。做了半天无用空,决定还是从MATLAB的文档看起,help image,选中doc image,看了一眼,立刻有所醒悟:
When you read image data into MATLAB using imread, the data is usually stored as an array of 8-bit integers. However, imread also supports reading 16-bit-per-pixel data from TIFF and PNG files. These are more efficient storage methods than the double-precision (64-bit) floating-point numbers that MATLAB typically uses. However, it is necessary for MATLAB to interpret 8-bit and 16-bit image data differently from 64-bit data. This table summarizes these differences.
Image TypeDouble-Precision Data