簡體   English   中英

在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)

坐標ar作為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

輸出:

在此處輸入圖片說明

在此處輸入圖片說明

好極了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM