J'ai détecté un cercle comme indiqué ci-dessous:Comment rogner un cercle détecté en tant que carré?
Comme plus tard, je veux détecter quelle limite de vitesse est le signe détecté, comment puis-je recadrer en sorte que je suis parti avec une image comme au dessous de?
Lorsque le programme il termine, il me montre où le centre est et les rayons dans le terminal.
centers =
248.4873 170.4811
radii =
24.5024
Je sais comment utiliser imcrop
mais comment puis-je utiliser les valeurs qui sont retournées au lieu d'écrire en moi-même, comme il pourrait y avoir plus de 1 cercle détecté?
code:
I = imread('p1.tif');
subplot(3,3,1); imshow(I); title('Original Image');
%sharpen edges
B = imsharpen(I);
subplot(3,3,2); imshow(B); title('sharpened edges');
%find circles
Img = im2bw(B(:,:,3));
minRad = 20;
maxRad = 90;
[centers, radii] = imfindcircles(Img, [minRad maxRad], ...
'ObjectPolarity','bright','sensitivity',0.87)
imagesc(Img);
viscircles(centers, radii,'Color','green');
Merci. Fonctionne parfaitement! – Powisss
@Powisss Vous pouvez également recadrer interactivement le cercle en utilisant 'I2 = imcrop' pour l'image requise. – Tes3awy