matlab 图像的扫描显示

在MATLAB中尝试图像的扫描显示时遇到问题,初始方法导致错误提示:TrueColor CData contains element out of range 0.0 <= value <= 1.0。通过查阅文档了解到,imread读取的8位图像数据需作为uint8数组处理,而非double。程序中定义的变量是double,导致不匹配。解决方案是将double数组转换为uint8。修正后的代码成功实现了逐行赋值并显示图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本以为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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值