首页 > 解决方案 > 从 MATLAB 中的图像中选择灰色块

问题描述

我有一张灰色背景的白色到黑色补丁的图片,我正在尝试在 MATLAB 中编写代码来选择这 12 个补丁。我面临的问题是某些补丁没有正确检测到,如第二张图片所示。

输入图像

要处理的图像

代码输出

代码输出

我的问题是:

  1. 如何正确选择这 12 个 ROI?
  2. 在 MATLAB 中有没有更好更完美的方法?

我的实现

CropImg=imread('patchc.jpg');
img=rgb2gray(CropImg);
rangefiltv= rangefilt(img);
imshow(rangefiltv)
mask = rangefiltv >10;
mask=~mask;
mask = bwareafilt(mask, 12);
stat = regionprops(mask,'boundingbox');
imshow(CropImg); hold on;
for cnt = 1 : numel(stat)
    bb = stat(cnt).BoundingBox;
    rectangle('position',bb,'edgecolor','r','linewidth',2);
end

标签: imagematlabimage-processingimage-segmentation

解决方案


推荐阅读