Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
196 views
in Technique[技术] by (71.8m points)

algorithm - I want to know value intersections between binary image and circle

004_1.bmp

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)

I have this program and I want to know value from the intersection between circle and binary image. If anyone know how to find the value?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can use find to obtain the indexes of the desired images as follows:

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...