我想请问一下在MATLAB的图像处理中,这个一下是怎么回事?
message = imread(fileName); %这个我知道
message = double(message);
message = round(message./256);
message = uint8(message);
请知道的大侠帮忙解释一下每一行的意思,尤其是第三行,为什么要除以256呢?多谢!
------解决方案--------------------------------------------------------
沙发,帮顶!
------解决方案--------------------------------------------------------
message = imread(fileName);
%读入一个图片(这个图片我感觉应该是灰度图像),然后message就是存储这个图像各点像素值的矩阵,注意这里得到的message是uint8类型的,也就是取值在0到255之间。
message = double(message);
%这句就很简单了,将矩阵message的类型转换为double型。
message = round(message./256);
%message./256表示将message矩阵中的每个元素都除以256,然后进行round操作(即四舍五入操作),最终得到的message就是一个double类型的矩阵,矩阵中只有0和1,0表示原来图像本位置处的像素值小于128(256 * 0.5 = 128),1表示原来图像本位置处的像素值大于等于128。
message = uint8(message);
将message又转化为uint8类型(由double类型转化为uint8类型)。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
应该是这样的,你的阈值是128。
你用matlab查下函数:im2bw,好好看它的说明。
------解决方案--------------------------------------------------------
2楼说的似乎很有道理!