Kay*_*311 0 binary matlab image-processing grayscale
我必须编写一个程序,将强度图像转换为黑白图像.我只是想我可以从原始矩阵中获取一个值,如果它高于平均值,则使另一个数组中的相应单元格等于1,否则等于零:
for x=1:X
for y=1:Y
if I(x,y)>mean(I(:))
bw(x,y)=1;
elseif I(x,y)<mean(I(:))
bw(x,y)=0;
end
end
end
image(bw)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到的图像都是黑色的.为什么?
我在uint8,顺便说一下.2-Lena.tiff图像
用这个 :
bw = im2bw(I, graythresh(I));
Run Code Online (Sandbox Code Playgroud)
这里是im2bw的文档;
使用imshow(I,[]);,不评估0到255之间的图像,但是min(I(:))和之间的图像max(I(:))
编辑
您可以graythresh(I)通过任何其他级别进行更改.您仍然可以使用图像的平均值.(归一化在0和1之间).
maxI = max(I(:));
minI = min(I(:));
bw = im2bw(I,(maxI - mean(I(:)))/(maxI - minI));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22333 次 |
| 最近记录: |