Matlab中的角点检测

NES*_*HOM 3 matlab image-processing

我试图找到以下图像的角落:

在此输入图像描述

我试过这段代码:

im = imread('layer2.png');
BW=im2bw(im, 100/256);
BW=~BW;
figure,imshow(BW);title('Original Image');
C = corner(BW,4);
hold on
plot(C(:,1), C(:,2), 'r.', 'MarkerSize',30);
Run Code Online (Sandbox Code Playgroud)

但它检测到错误的角落,如下图所示:

在此输入图像描述

怎么了?如何才能检测到真正的角落?

len*_*310 6

只需添加一行im2bw:

im = imdilate(im,strel('disk',2));
Run Code Online (Sandbox Code Playgroud)

图片:

在此输入图像描述

  • 非常感谢,你能解释一下这行是做什么的吗? (3认同)