【问题标题】:How to visualize an image segment borders in Matlab?如何在 Matlab 中可视化图像段的边界?
【发布时间】:2013-04-12 04:33:12
【问题描述】:

我有一个矩阵,其中包含图像每个像素的分段索引。如何可视化段的边界?最明显的想法是使用diff filter来获取边缘图,但是看起来很丑。如何使图像看起来像这里? http://www.vlfeat.org/overview/slic.html

UPD:我试过了,看起来还不错。代码本身看起来很难看,也许可以写成更优雅的形式。

boundaries = zeros(size(segments));
boundaries(2:end, :) = boundaries(2:end, :) + (segments(2:end, :) ~= segments(1:end-1, :));
boundaries(:, 2:end) = boundaries(:, 2:end) + (segments(:, 2:end) ~= segments(:, 1:end-1));

【问题讨论】:

    标签: matlab image-segmentation vlfeat


    【解决方案1】:

    如果您有索引的位置(例如边界所在位置的二进制掩码),您可以使用 imoverlay 来做到这一点。

    http://www.mathworks.co.uk/matlabcentral/fileexchange/10502-image-overlay

    对于更快的东西,特别是如果你只需要一种颜色,你为什么不做类似的事情

    (假设边框存储在一个逻辑数组中:borders 并且您的图像在img

    img(borders) = 0
    

    使borders 蒙版中的所有像素变黑

    【讨论】:

    • 我没有边框数组,问题是如何创建它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 2019-07-28
    • 2011-10-19
    • 1970-01-01
    • 2011-10-05
    • 2014-06-22
    • 2015-01-08
    相关资源
    最近更新 更多