Find location of plotted circle on a binary image

1 view (last 30 days)
have to findthe location of the circle, need to walk along the circle and get the pixel value. For example the answer will be almost like 000011111000001111.. when the circle pass through the white region shows "1" and if it pass through black region shows "0".
  4 Comments
Nir Rattner
Nir Rattner on 5 Aug 2014
The circle in the provided image appears to be computer generated. What function are you using to draw the circle? It is likely that you can pull the XData and YData from the circle object to get pixel values.
Shasha Glow
Shasha Glow on 6 Aug 2014
adjusted_theta = 0 : 0.01 : 2*pi;
x = round(radius*cos(adjusted_theta)+ mean(m));
y = round(radius*sin(adjusted_theta)+ mean(n));
plot(x,y);

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 5 Aug 2014
Edited: Image Analyst on 5 Aug 2014
for k = 1 : length(circleX)
row = circleY(k);
column = circleX(k);
pixelValue = binaryImage(row, column)
end
Is that what you want?
  3 Comments
Image Analyst
Image Analyst on 6 Aug 2014
pixelValue = yourImage(y(someIndex), x(someIndex));
Nir Rattner
Nir Rattner on 6 Aug 2014
Note that this may double count some pixels depending on the resolution and rounding of your adjusted_theta vector. You may first want to do:
uniqueXY = unique([x' y'], 'rows');
xUnique = uniqueXY(:, 1);
yUnique = uniqueXY(:, 2);
And then you can use xUnique and yUnique in the loop suggested above.

Sign in to comment.

Categories

Find more on Axes Appearance in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!