MATLAB 图像处理 问题 灰度图lena.bmp

MATLAB 图像处理 问题 灰度图lena.bmp

M=imread('lena.bmp');
[h,w]=size(M);
>> M(1,1)
ans =
162
>> M(1,1)/255
ans =
1
>> 162/255
ans =
0.6353
我就是想知道M(1,1)/255 为什么给出1的答案

第1个回答  2013-04-16
因为数据类型,
你需要在第二行加上M= double(M);

我看你要做的应该是标准化,
更简单的办法是
M = imread('lena.bmp');
nM = im2double(M);
就做好了。
第2个回答  2013-04-16
>> M(1,1)=162
M =
162
>> M(1,1)/255
ans =
0.63529411764706追问

>> M(1,1)=162
M =
162
>> M(1,1)/255
ans =
0.6353
这个没问题,只是读取灰度图(1,1)点的灰度值然后除以255,为何给出的答案不是0就是1,自动给我四舍五入了

追答

我猜可能的原因是matlab软件把对灰度值得计算限制为只能取为0或1;因为使用矩阵单独进行这样的运算时是正确的,你自己可以使一下。

第3个回答  2013-04-17
因为那个默认的ans是int类型的,四舍五入。所以得到1