【问题标题】:Converting a grayscale image to black and white将灰度图像转换为黑白
【发布时间】:2013-04-21 13:19:12
【问题描述】:

我有一个灰度图像,只有值 60117。如何将图像仅转换为 blackwhite 而没有灰度?

我尝试了matlab 函数gray2ind,但没有得到预期的输出。

谢谢。

【问题讨论】:

    标签: image matlab binary converter grayscale


    【解决方案1】:

    试试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 初始化以获得逻辑矩阵
    • 感谢您的回复。我可以将其扩展到 3,4,5,...等值吗?我的问题在这里:stackoverflow.com/questions/16252146/…
    • 您应该能够通过将bwImg(img == 117) = true 更改为bwImg(img > threshold) = true 为您为threshold 选择的任何值将其扩展到任意数量的值。
    • 阈值的选择完全取决于您将图像转换为黑白的意图。在您的示例中,您实际上只有 2 个有意义的值作为阈值 (17, 56)。低于 17 或高于 180 的阈值会导致图像无趣。在更广泛的应用程序中,您可以通过hist(img) 检查原始像素值的直方图,以更好地了解阈值。
    猜你喜欢
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多