在给出x坐标,y坐标和圆的半径的值时,如何从matlab中的图像中获取圆形部分?

时间:2013-11-08 09:25:44

标签: image matlab image-processing computer-vision signal-processing

在给出上述值时,我们如何单独对该部分进行修改。是否可以将该部分用于图像增强或水印?

value of x= some coordinate
value of y= some coordinate
radius of circle=r

1 个答案:

答案 0 :(得分:1)

真正基于图像处理工具的一种简单可能性是围绕中心点的distance transform阈值。

原则上,这种方法可以让您一次考虑多个中心。

E.g。为了

 R = 20;
 Cx = 150;
 Cy = 150;

enter image description here

enter image description here

 %%% // parameters
 R = 20;
 Cx = 150;
 Cy = 150;

 %%% // Demo pict
 clear X map;
 figure   
 load('flujet','X','map');
 imagesc(X);
 colormap(map);

 %%% // mask of the centers
 mask = false(size(X));   
 mask(Cy,Cx)=true;

 %%% // distance transform
 D = bwdist(mask);

 %%% // thresholding with radius R
 X = X.*(D<R);
 figure
 imagesc(X);
 colormap(map);