今天做数字图像处理比特平面作业。
步骤:
1.读入灰度图片(灰度读入,只有长宽,无通道)
2.图片中每一个像素值的范围为0-255.将每一个十进制数用8位二进制来表示。
3.所有像素值的第0位,组成了0比特面;所有像素值的第1位,组成了1比特面,以此类推。最后得到了八张0-1比特面图。
问题来了~
当用imshow进行展示图片时,imshow函数默认其位二进制图像,0表示黑色,1表示白色。
自己将图片保存到本地,是全黑的。经过分析,可能保存下来以后,认为存储的是0-255范围的。
于是将像素值为1的像素变为255,图片可正常显示。同时将修改好的二位矩阵用imshow进行展示时,仍然可以正常显示。
问题来了~~~~imshow函数怎么如何区分我的每一个像素值的范围是多少呢。
经过查阅资料,好像imshow(img,[low,high])认为低于low的值设置为黑色,高于high的值设置为白色。其余值介于之间。
如果不填low,high,我猜是默认所有像素值最大的设置为high,最小的设置为low。
个人意见,不知道对不对。如果有大神,还请给出正确解释~感谢