【问题标题】:How to draw a black border around the image [closed]如何在图像周围绘制黑色边框[关闭]
【发布时间】:2017-08-08 12:49:37
【问题描述】:

如何裁剪图像以使其仅包含叶子而没有噪点部分?

【问题讨论】:

  • 你有图像处理工具箱吗?您使用的是哪个 MATLAB 版本?该主题的标题与您要问的内容之间似乎存在差异。你想要一个更小尺寸的图像,还是同样尺寸,只保留叶子,就可以了?您要保留的对象是否始终是最大的?

标签: matlab image-processing crop grayscale noise-reduction


【解决方案1】:

如果你有Image Processing Toolbox,你可以这样做:

  • Morphologically open 图片(去除椒盐噪声)。
  • 将图像转换为二进制。
  • 检测最大的连续区域(可能是感兴趣的对象)。
  • 将所有其他像素设置为“忽略值”(在本例中为255)。
  • 通过索引边界框“裁剪”原始图像。

function out = q42849445
img = imread('https://i.stack.imgur.com/hTtqz.jpg');
bw = ~imopen(logical(img),strel('disk',10));
stats = regionprops(bw,'Area','SubarrayIdx');
[~,I] = max([stats.Area]);
for ind = setdiff(1:numel(stats),I)
  img(stats(ind).SubarrayIdx{:}) = 255;
end
out = img(stats(I).SubarrayIdx{:});

结果(使用imshow):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多