Matlab中利用imshow函数中出现的问题

imshow是一个很强大的”武器”,显示图像简直无所不能,但这其中往往会出现问题。在处理图像时,我们的图像经常是经过了某种运算,为了保证其精度,系统会自动的将uint8型数据类型转化成double型。

“如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。 ”

解决之道:

(1) 可以利用mat2gray()函数,这个函数是归一化函数,可以把数据归一化到0-1之间,再用imshow()就可以了;
(2) 或者对于一个处理后的黑白图像Img,若为double型可以这样写:imshow(Img/max(Img(:)))
(3) 还有一种就是:imshow(Img,[]);就是加一个[],即可以自动调整显示;

转载于:https://www.cnblogs.com/vincentQin/p/5406007.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值