从MATLAB中的多边形图像中检测正确数量的CORNER坐标

Santhan Salai

我有许多多边形图像,例如六边形,五边形,任何四边形等。

例如:-代码应仅检测四边形为4,三角形为3,五边形为5,依此类推。

我使用HARRIS拐角检测通过指定拐角数值来检测右拐角,但是我不能对具有不同边缘数的图像使用相同的代码。

使用相同代码的原因是我正在尝试批量处理图像->检测角并打印它们...我无法更改每个图像的代码。

样本图片:-

八边形:

在此处输入图片说明

五角大楼:

在此处输入图片说明

Benoit_11

给定正确的输入参数,有一个名为corner的功能可以很好地工作。

例如设置适当的QualityLevel给出准确的结果:

clear
clc

A = imread('Octagon.jpg');
A_gray = rgb2gray(A);

figure;
Ca = corner(A_gray,'QualityLevel',.2)

坐标arCa以N x 2矩阵形式存储这里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

输出:

在此处输入图片说明

在此处输入图片说明

耶!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章