1.保存灰度图为.png图片,如果图片像素值是0~1之间的浮点数,
(1)opencv保存,效果能稍微看出一点轮廓,但是大部分黑色。
①如果用matplotlib读取,像素值是0~1之间的浮点数(在我的测试中,只剩下了0和一个0.003921569这两数值),float类型的数据,能显示图片,但是丢失了许多信息。
②如果用opencv读取,因为只剩下(0或者1)两个像素值,int类型,并且opencv显示灰度图像素值范围是0—~255,即255是最亮的,所以opencv显示的话是漆黑一片。
(2)matplotlib保存,效果正常。
①如果用matplotlib读取,像素值还是正常的,float类型的数值(0~1之间的浮点数),但是变成了四通道的。显示灰度图正常显示。
②如果用opencv读取,重点来了,像素值类型是int类型的,并且值是0~255,能正常显示图片。
2.所以如果如果要保存0~1直接的浮点数为图片的话,如果想不失真,最好用matplotlib保存。如果要用opencv保存的话也可以(前提是把像素值乘以255,变到0~255之间)就可以显示正常了。
下面的链接,来自百度,可以看出区别:https://jingyan.baidu.com/article/cb5d6105a82a42005c2fe0eb.html
本文探讨了使用matplotlib和opencv保存0~1之间浮点数灰度图的效果对比。指出若要保留细节,宜选用matplotlib;而用opencv时,需将像素值调整至0~255区间。
3055

被折叠的 条评论
为什么被折叠?



