【发布时间】:2013-04-21 13:19:12
【问题描述】:
我有一个灰度图像,只有值 60 和 117。如何将图像仅转换为 black 和 white 而没有灰度?
我尝试了matlab 函数gray2ind,但没有得到预期的输出。
谢谢。
【问题讨论】:
标签: image matlab binary converter grayscale
我有一个灰度图像,只有值 60 和 117。如何将图像仅转换为 black 和 white 而没有灰度?
我尝试了matlab 函数gray2ind,但没有得到预期的输出。
谢谢。
【问题讨论】:
标签: image matlab binary converter grayscale
试试im2bw(img, level) 和level = 0.5。
这是一个 matlab 函数,它获取灰度图像 img,应用阈值 level(介于 [0,1] 之间的值)并返回黑白图像。
此函数是图像处理工具箱的一部分。您的案例很简单,您也可以尝试以下方法:
bwImg = false(size(img));
bwImg(img == 117) = true;
我编辑了上面的设置值等于 false/true 以更接近地模仿 Matlab 的 im2bw(),它返回 logical 值的矩阵而不是 ints。
第二次编辑:修改代码块以反映@Amro 建议的改进
【讨论】:
grathresh()确定level。
bwImg = (img==117);。顺便说一句,用false(size(img)) 而不是zeros 初始化以获得逻辑矩阵
bwImg(img == 117) = true 更改为bwImg(img > threshold) = true 为您为threshold 选择的任何值将其扩展到任意数量的值。
hist(img) 检查原始像素值的直方图,以更好地了解阈值。