提取出边缘再进行im2bw二值化,得到二值化后的0,1图像
1的图像本质上是由离散的点构成,将离散的点的x,y坐标找出,
可以用find命令,例如[x,y]=find(I==1)
最后用cftool曲线拟合工具箱,拟合出所有的x,y的坐标点
大致这么个思路,往这方面使劲,基本上就可以搞定.
% load imageI = imread('circle.png')
I = rgb2gray(I)
BW = im2bw(I)
% find white points
[Y, X] = find(BW)
% circle fit
H = [X, Y, ones(size(X))]
B = -(X.^2+Y.^2)
P = H\B
% circle function:
% x^2+y^2+P(1)*x+P(2)*y+P(3)=0
最后得到了圆的一般方程,自己整理成标准方程就可以得到圆心和半径了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)