请问各位,有没有拟合圆的较好的方法和代码,先谢了
RT
------解决方案--------------------不会 帮顶
------解决方案--------------------不知道的知识
------解决方案--------------------up~
------解决方案--------------------网上找找吧
------解决方案--------------------我不会。是来帮顶的.希望你可以找到好的解决办法
------解决方案--------------------??为啥要拟合圆,gdi+本身就可以画圆,难道你准备算π值
如果非要拟合,也没啥问题,给个参数方程(圆的参数方程,不用我多说了把高中内容)
然后改变角度值,得到一系列的点,把填到这些点gdi+的path路径里就成
------解决方案--------------------
------解决方案--------------------最小二乘法拟合曲线例子
http://www.codeproject.com/KB/recipes/QuadraticRegression.aspx
------解决方案--------------------霍夫变换(Hough)。其实思想很简单:在一定范围内遍历圆的参数(如果是圆心、半径参数的话,就是三个参数),计算在哪个参数下经过的点最多。优点:抗噪,同样的思想可以检测多个圆。缺点:计算复杂度较高,不过可以优化,如用查找表等思想。该算法在图像处理中用于检测可以有参数方程描述的图形,如直线,园,椭圆等。
------解决方案--------------------霍夫变换程序的优化思想主要有:查找表(如一些需要重复计算的值,可以一次性先计算完存储到数组中,待使用时从数组中访问),浮点运算通过一些技巧转换为整数运算,循环次数层数的优化等。
------解决方案--------------------拟合的方法计算量小,但是很容易受到噪声的影响。用拟合迭代(每次拟合时选择与上一次迭代较近的点再次拟合)是否可以?计算量高了,结果准确了。楼主可以试试看呀,在准确性和计算量之间可能要有所取舍了。另外拟合方法只能得到一个圆。霍夫变换倒是可以得到多个圆。
------解决方案--------------------试看看这个图形引擎吧:
AGE, Another Graphic Engine in .NET源代码下载,需要先注册用户