使用imshow和imwrite的注意事项

来源:互联网 发布:淘宝店铺首页连接直播 编辑:程序博客网 时间:2024/06/08 02:23

大噶猴!

今天来记录一下我最近才注意到的一个小知识点。


在日常编程中,我们经常用到imshow和imwrite来显示和写图像,但是经常看像素值没有问题,输出却是一张空白图。这个原因是图像在变换的时候,为保证精度,我们通常将数据类型设为double,或没有经过人为设置的uint8类型的图像在经过运算时会自动变为double类型。


而imshow和imwrite在执行时,对double类型的数据默认范围为0到1,超出1的视为值为1,即大于1时都显示为白色。所以0到255的double类型在输出时会显示全是白色。想要解决这一问题,有几种办法:

1.使用mat2gray将数据归一化为0到1的double类型。例如img=mat2gray(img);

2.在输出时将数据转换为uint8类型输出,例如imshow(uint8(img));

3.将图像像素值强制归一化到0到1之间,例如imshow(img/255);


就是这样了,想到再补充,我们下期见!

0 0