Détecter une forme circulaire à l'intérieur de l'image dans MATLAB

Quel est le moyen le plus rapide pour détecter ces formes circulaires dans une image?

Détecter une forme circulaire à l'intérieur de l'image dans MATLAB

Le rayon est toujours entre(80-100 mm). Arrière-plan est toujours blanc. Et le cercle sera toujours au centre.

J'ai essayé Hough Transformer mais je ne pouvais pas vraiment le faire fonctionner. Je suis nouveau à cela, et j'ai comme une sensation Hough Transformer est un overkill pour ce. Veuillez me suggérer la bonne approche pour ce faire.
Détecter une forme circulaire à l'intérieur de l'image dans MATLAB


Mise à JOUR

Voici ce que j'ai obtenu après application de la transformation de hough.

J'ai utilisé l'algorithme mentionné ici.

Voici le code à partir de la plus grande algorithme

% applying Hough Below
[accum, circen, cirrad] = ...
    CircularHough_Grd(gR, [89 93],...
    17.4, 13, 1);   % this executes in 0.72 sec

% Lets see what we got
imshow(gR);
hold on;
plot(circen(:,1), circen(:,2), 'r+');
for ii = 1 : size(circen, 1)
    rectangle('Position',[circen(ii,1) - cirrad(ii), circen(ii,2) - cirrad(ii), 2*cirrad(ii), 2*cirrad(ii)],...
        'Curvature', [1,1], 'edgecolor', 'b', 'linewidth', 1.5);
end
hold off;

Détecter une forme circulaire à l'intérieur de l'image dans MATLAB

Significative du cercle est le cercle au milieu.

Pouvez-vous s'il vous plaît montrer votre propre tente en premier?

OriginalL'auteur vvy | 2013-12-05