matlab - 物体检测

matlab - Object detection

给出下图

而且我必须检测图像右下角的组件。 结果应如下所示:

阈值处理后的侵蚀在代码中如下所示:

clc; close all;
I  = imread('Leiterplatte.png');
se = strel('rectangle', [2 4]);
Ie1 = imerode(I,se);
imshow(I);

%figure; histogram(I)
Im = Ie1>40 & Ie1<128;
figure; imshow(Im) 

se = strel('rectangle', [8 8]);
Ie = imerode(Im,se);

figure; imshow(Ie)

I(Ie)=255;
figure; imshow(I)

我得到以下结果:

但是检测到的矩形太小,或者如果不是那么斑点仍然在图像中,如下所示:

你快到了。稍微玩一下常量和一个 imopen 删除点的调用就可以完成工作:

I  = imread('RuaDN.png');
se = strel('rectangle', [4 8]);
Ie1 = imerode(I,se);
Im = Ie1>70 & Ie1<130;
se = strel('rectangle', [8 16]);
Ie = imopen(Im, se);

O = I;
O(Ie) = 255;