如何在 Matlab 中可视化图像段的边界?
Posted
技术标签:
【中文标题】如何在 Matlab 中可视化图像段的边界?【英文标题】:How to visualize an image segment borders in 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));
【问题讨论】:
【参考方案1】:如果您有索引的位置(例如边界所在位置的二进制掩码),您可以使用 imoverlay
来做到这一点。
http://www.mathworks.co.uk/matlabcentral/fileexchange/10502-image-overlay
对于更快的东西,特别是如果你只需要一种颜色,你为什么不做类似的事情
(假设边框存储在一个逻辑数组中:borders
并且您的图像在img
)
img(borders) = 0
使borders
蒙版中的所有像素变黑
【讨论】:
我没有边框数组,问题是如何创建它。以上是关于如何在 Matlab 中可视化图像段的边界?的主要内容,如果未能解决你的问题,请参考以下文章
R语言可视化散点图(scatter plot)图允许数据和标签堆叠允许标签在图像边界截断允许标签超出图像边界ggrepel包来帮忙
MATLAB可视化实战系列(四十二)-图像特征提取-使用低秩 SVD 进行图像压缩实例