Obtaining coordinate values within circular ROI

4 次查看(过去 30 天)
Hello all,
I have a function that receives xlist (vector of row coordinates) and ylist (vector of column coordinates) as inputs. I would like create another function that allows users to just select a starting coordinate (x, y) and it will capture all coordinates within a circular region of radius r (predefined) in the format of xlist and ylist.
My image is always 512*512 (grayscale CT). How do I do this?
Thank you so much!

回答(1 个)

KSSV
KSSV 2019-2-28
Check this demo example:
I = imread('cameraman.tif') ;
[ny,nx] = size(I) ;
C = input('Enter center of circle C(x,y), should be less then 256:','s') ;
R = input('Enter Radius of circle:','s') ;
%
C = str2num(C) ;
R = str2num(R) ;
%
th = linspace(0,2*pi) ;
xc = C(1)+R*cos(th) ;
yc = C(2)+R*sin(th) ;
[X,Y] = meshgrid(1:nx,1:ny) ;
idx = inpolygon(X(:),Y(:),xc,yc) ;
I(~idx) = 255 ;
imshow(I)

类别

Help CenterFile Exchange 中查找有关 Image Segmentation and Analysis 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by