Ceci est un programme que j'ai, j'ai déjà asked before pour trouver l'intersection sur mon image avec un cercle, et quelqu'un a une réponse (merci) et j'ai un autre problème .. .Résumer tous les points d'intersection par sens horaire
a = imread('001_4.bmp');
I2 = imcrop(a,[90 5 93 180]);
[i,j]=size(I2);
x_hist=sum(I2,1);
y_hist=(sum(I2,2))';
x=1:j ; y=1:i;
centx=sum(x.*x_hist)/sum(x_hist);
centy=sum(y.*y_hist)/sum(y_hist);
BW = edge(I2,'Canny',0.5);
bw2 = imcomplement(BW);
circle = int32([centx,centy,40]);%<<----------
shapeInserter = vision.ShapeInserter('Fill',false);
release(shapeInserter);
set(shapeInserter,'Shape','Circles');
% construct binary image of circle only
bwCircle = step(shapeInserter,true(size(bw2)),circle);
% find the indexes of the intersection between the binary image and the circle
[i, j] = find ((bw2 | bwCircle) == 0);
figure
imshow(bw2 & bwCircle) % plot the combination of both images
hold on
plot(j, i, 'r*') % plot the intersection points
K = step(shapeInserter,bw2,circle);
[n,m]=size(i);
d=0;
k=1;
while (k < n)
d = d + sqrt((i(k+1)-i(k)).^2 + (j(k+1)-j(k)).^2);
k = k+1;
end
Q: Comment puis-je calculer toutes les valeurs d'intersection existantes (rouge *) dans le sens des aiguilles d'une montre?
pour le point avg de calcul du polygone convexe (milieu), puis calculer angle de chaque intersection point à elle et axe x par «atan2» et enfin trier les points par angle – Spektre
Pourquoi est-il important d'effectuer le calcul dans le sens des aiguilles d'une montre? – m7913d
mon professeur m'a dit de faire une somme dans le sens des aiguilles d'une montre –