从 MATLAB 中的多边形图像中检测正确数量的 CORNER 坐标
Detect correct number of CORNER coordinates from a Polygon image in MATLAB
我有许多多边形图像,如六边形、五边形、任何四边形等。我需要概括检测技术以检测正确数量的角坐标。不应生成额外的坐标。
例如:- 代码应该只检测四边形 4 个,三角形 3 个,五边形 5 个等等。
我使用 HARRIS 角检测通过指定角值的数量来检测右角,但我不能对具有不同边数的图像使用相同的代码。
使用相同代码的原因是我正在尝试批量处理图像 -> 检测角并打印它们...我无法更改每张图像的代码。
示例图片:-
八边形:
五角大楼:
有一个名为 corner 的函数在输入参数正确的情况下运行良好。
例如设置适当的 QualityLevel
给出准确的结果:
clear
clc
A = imread('Octagon.jpg');
A_gray = rgb2gray(A);
figure;
Ca = corner(A_gray,'QualityLevel',.2)
坐标作为 N x 2 矩阵存储在 Ca
中。这里 N = 8.
imshow(A)
hold on
scatter(Ca(:,1),Ca(:,2),80,'filled','k')
hold off
B = imread('Pentagon.jpg');
B_gray = rgb2gray(B);
figure;
Cb = corner(B_gray,'QualityLevel',.2)
imshow(B)
hold on
scatter(Cb(:,1),Cb(:,2),80,'filled','k')
hold off
输出:
和
耶!
我有许多多边形图像,如六边形、五边形、任何四边形等。我需要概括检测技术以检测正确数量的角坐标。不应生成额外的坐标。
例如:- 代码应该只检测四边形 4 个,三角形 3 个,五边形 5 个等等。
我使用 HARRIS 角检测通过指定角值的数量来检测右角,但我不能对具有不同边数的图像使用相同的代码。
使用相同代码的原因是我正在尝试批量处理图像 -> 检测角并打印它们...我无法更改每张图像的代码。
示例图片:-
八边形:
五角大楼:
有一个名为 corner 的函数在输入参数正确的情况下运行良好。
例如设置适当的 QualityLevel
给出准确的结果:
clear
clc
A = imread('Octagon.jpg');
A_gray = rgb2gray(A);
figure;
Ca = corner(A_gray,'QualityLevel',.2)
坐标作为 N x 2 矩阵存储在 Ca
中。这里 N = 8.
imshow(A)
hold on
scatter(Ca(:,1),Ca(:,2),80,'filled','k')
hold off
B = imread('Pentagon.jpg');
B_gray = rgb2gray(B);
figure;
Cb = corner(B_gray,'QualityLevel',.2)
imshow(B)
hold on
scatter(Cb(:,1),Cb(:,2),80,'filled','k')
hold off
输出:
和
耶!