2017-06-02 15 views
-1

004_1.bmpJe veux savoir les intersections de valeur entre l'image binaire et le cercle

clc 
clear 
a = imread('004_1.bmp'); 
I2 = imcrop(a,[80 17 101 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.329); 
bw2 = imcomplement(BW); 
circle = int32([centx,centy,40]); 
shapeInserter = vision.ShapeInserter('Fill',false); 
release(shapeInserter); 
set(shapeInserter,'Shape','Circles'); 
K = step(shapeInserter,bw2,circle); 


figure, imshow(K) 

J'ai ce programme et je veux savoir la valeur de l'intersection entre le cercle et l'image binaire. Si quelqu'un sait comment trouver la valeur?

+0

Il faut ajouter l'image trop ... afin que les utilisateurs peuvent essayer votre code .. –

+0

pic ajouté .. merci pour votre conseil :) –

Répondre

1

Vous pouvez utiliser find pour obtenir les index des images souhaitées comme suit:

bwCircle = step(shapeInserter,true(size(bw2)),circle); % construct binary image of circle only 
[i, j] = find ((bw2 | bwCircle) == 0); % find the indexes of the intersection between the binary image and the circle 

figure 
imshow(bw2 & bwCircle) % plot the combination of both images 
hold on 
plot(j, i, 'r*') % plot the intersection points 

enter image description here

+0

okay, je vous remercie pour l'aide: D –

+0

si je veux résumer toutes les intersections, comment puis-je le résumer? mais je veux résumer toutes les intersection par sens horaire –

+0

Il peut être une bonne idée de poser une question distincte à ce sujet. Si vous les résumez tous, pourquoi voulez-vous le prendre dans le sens des aiguilles d'une montre? – m7913d