基于最小二乘法的改进的随机椭圆检测算法
(完整版)最小二乘法拟合椭圆附带matlab程序
最小二乘法拟合椭圆设平面任意位置椭圆方程为:x 2+Axy +By 2+Cx +Dy +E =0设P i (x i ,y i )(i =1,2,…,N )为椭圆轮廓上的N (N ≥5) 个测量点,依据最小二乘原理,所拟合的目标函数为:F (A,B,C,D,E )=∑(x i 2+Ax i y i +By i 2+Cx i +Dy i +E)2Ni=1欲使F 为最小,需使∂F ∂A =∂F ∂B =∂F ∂C =∂F ∂D =∂F ∂E=0 由此可以得方程:[ ∑x i 2y i 2∑x i y i 3∑x i 2y i ∑x i y i 2∑x i y i ∑x i y i 3∑y i 4∑x i y i 2∑y i 3∑y i 2∑x i 2y i ∑x i y i 2∑x i 3∑x i y i ∑x i ∑x i y i 2∑y i 3∑x i y i ∑y i 2∑y i 2∑x i y i ∑y i 2∑x i ∑y i N ] [ A B C D E ] =-[∑x i 3y i ∑x i 2y i 2∑ x i 3∑x i 2y i ∑ x i 2] 解方程可以得到A ,B ,C ,D ,E 的值。
根据椭圆的几何知识,可以计算出椭圆的五个参数:位置参数(θ,x 0,y 0)以及形状参数(a,b )。
x 0=2BC−ADA 2−4By 0=2D −AD A 2−4Ba =√2(ACD −BC 2−D 2+4BE −A 2E )(A 2−4B )(B −√A 2+(1−B 2)+1)b =√2(ACD −BC 2−D 2+4BE −A 2E )(A 2−4B )(B +√A 2+(1−B 2)+1)θ=tan−1√a 2−b 2B a 2B −b 2附:MATLAB程序function [semimajor_axis, semiminor_axis, x0, y0, phi] = ellipse_fit(x, y)%% Input:% x —— a vector of x measurements% y ——a vector of y measurements%% Output:%semimajor_axis—— Magnitude of ellipse longer axis%semiminor_axis—— Magnitude of ellipse shorter axis%x0 ——x coordinate of ellipse center%y0 ——y coordinate of ellipse center%phi——Angle of rotation in radians with respect to x-axis%% explain% 2*b'*x*y + c'*y^2 + 2*d'*x + 2*f'*y + g' = -x^2% M * p = b M = [2*x*y y^2 2*x 2*y ones(size(x))],% p = [b c d e f g] b = -x^2.% p = pseudoinverse(M) * b.x = x(:);y = y(:);%Construct MM = [2*x.*y y.^2 2*x 2*y ones(size(x))];% Multiply (-X.^2) by pseudoinverse(M)e = M\(-x.^2);%Extract parameters from vector ea = 1;b = e(1);c = e(2);d = e(3);f = e(4);g = e(5);%Use Formulas from Mathworld to find semimajor_axis, semiminor_axis, x0, y0, and phi delta = b^2-a*c;x0 = (c*d - b*f)/delta;y0 = (a*f - b*d)/delta;phi = 0.5 * acot((c-a)/(2*b));nom = 2 * (a*f^2 + c*d^2 + g*b^2 - 2*b*d*f - a*c*g);s = sqrt(1 + (4*b^2)/(a-c)^2);a_prime = sqrt(nom/(delta* ( (c-a)*s -(c+a))));b_prime = sqrt(nom/(delta* ( (a-c)*s -(c+a))));semimajor_axis = max(a_prime, b_prime); semiminor_axis = min(a_prime, b_prime); if (a_prime < b_prime)phi = pi/2 - phi;end欢迎交流:邮箱:*****************。
matlab最小二乘法拟合椭圆
matlab最小二乘法拟合椭圆在MATLAB中使用最小二乘法拟合椭圆的方法如下:1. 假设我们有一组二维点的坐标数据,可以表示为 (x, y)。
我们的目标是找到一个椭圆方程来最好地拟合这些点。
2. 根据椭圆的标准方程,我们可以将椭圆表示为 Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0 的形式。
其中 A、B、C、D、E 和 F 是椭圆的参数,需要确定。
3. 我们可以将这个问题转化为一个最小二乘问题,通过找到参数 A、B、C、D、E 和 F,使得该方程对每个数据点 (x, y) 的误差最小化。
4. 在MATLAB中,可以使用 lsqnonlin 函数来解决最小二乘问题。
首先,定义一个误差函数,即方程 Ax^2 + Bxy + Cy^2 + Dx + Ey + F 的值与点 (x, y) 之间的距离差的平方之和。
5. 然后,使用 lsqnonlin 函数来最小化误差函数并找到最佳的参数 A、B、C、D、E 和 F。
以下是一个使用最小二乘法拟合椭圆的示例代码:```matlabfunction error = ellipseFit(params, x, y)A = params(1);B = params(2);C = params(3);D = params(4);E = params(5);F = params(6);error = A * x.^2 + B * x.*y + C * y.^2 + D * x + E * y + F;endx = [1, 2, 3, 4, 5]; % 输入数据点的 x 坐标y = [2, 4, 5, 6, 7]; % 输入数据点的 y 坐标params0 = [1, 1, 1, 1, 1, 1]; % 初始参数猜测值% 使用 lsqnonlin 函数求解最小二乘问题params = lsqnonlin(@(params)ellipseFit(params, x, y),params0);A = params(1);B = params(2);C = params(3);D = params(4);E = params(5);F = params(6);disp(['椭圆方程: ', num2str(A), 'x^2 + ', num2str(B),'xy + ', num2str(C), 'y^2 + ', num2str(D), 'x + ', num2str(E), 'y + ', num2str(F), ' = 0']);```这段代码根据输入的数据点坐标进行最小二乘拟合,得到椭圆方程的参数,并打印出椭圆方程。
基于边界的最小二乘椭圆拟合改进算法
基于边界的最小二乘椭圆拟合改进算法王万国;王仕荣;徐正飞;杨文波;王振利;李丽【摘要】由于变电站巡检机器人停靠位置和云台转动的偏差,拍摄所获得的图像中仪表位置会有较大不同。
为解决图像中仪表的定位问题,文中提出了一种快速地利用边界提取椭圆形目标的方法,可有效地解决图像中圆形目标的提取。
原有最小二乘椭圆拟合算法对图像边界上所有样本点都参与运算,所以会对椭圆拟合的最后结果产生偏差且耗时较长。
针对这种情况,采取边界的最小二乘拟合算法,依次取图像边缘提取后的边界,逐段拟合椭圆,并对拟合出的椭圆进行评估,选取适合待检测目标的椭圆区域,具有快速高效、定位准确等特点。
最后,通过合成图像和实际图像的应用验证了算法能够拟合出具有高精度的椭圆,能够有效地处理仪表表盘的提取。
%It may have a certain bias between the device in the template image and new acquired image because of the deviation of the motion and mechanical error caused by PTZ(Pan-Tilt-Zoom) for mobile inspection robot. So how to locate the meter in a new acquired image is need to be solved. Present a fast elliptical target extraction method based on boundary that can effectively solve the extraction of the circular target in the image. The least squares ellipse fitting algorithm,all the sample points are involved in operations,so the final out-come produces the ellipse fitting bias and takes a long time. Adopt the least squares fitting algorithm based on the boundary,take the boundaries of the image edge extraction,piecewise fitting ellipse,ellipse and fitting out of the assessment,select the appropriate target to be detected elliptical area. Verifying the algorithm in the synthetic and actual image applications canfit oval with high precision,which can effectively deal with the extraction of the instrument dial.【期刊名称】《计算机技术与发展》【年(卷),期】2013(000)004【总页数】4页(P67-70)【关键词】椭圆拟合;表盘提取;最小二乘法【作者】王万国;王仕荣;徐正飞;杨文波;王振利;李丽【作者单位】山东电力集团公司电力科学研究院,山东济南 250002;云南电网公司大理供电局,云南大理 671000;山东鲁能智能技术有限公司,山东济南250002;云南电网公司大理供电局,云南大理 671000;山东电力集团公司电力科学研究院,山东济南 250002;山东电力集团公司电力科学研究院,山东济南250002【正文语种】中文【中图分类】TP301.60 引言图像识别技术在工业生产尤其是电力运行、生产中有着非常广泛的应用,基于图像处理的仪表读数是其在电力系统中重要的应用方向。
最小二乘改进算法及其在椭圆拟合中的应用
文章编号: 1672 - 687 1 ( 20 14 ) 03 - 00 1 8 - 04
最小二乘改进算法及其在椭圆拟合中的应用
马向南, 李 航, 刘丽丽, 刘志伟
( 河南科技大学 机电工程学院, 河南 洛阳 47 1003 ) 摘要: 提出一种像素级边缘检测椭圆拟合新算法, 用该算法对最小二乘算法进行了改进。首先, 将符合要求 的 准椭圆转化到归一化坐标系; 然后利用最小二乘法进行亚像素级椭圆拟合; 最后, 采用二次曲线拟合点集求 解 出亚像素及椭圆几何中心。在给定的图形中, 利用本文提出的改进像素级边缘检测算法可以明显提高拟合 不 确定度和拟合精度。 关键词: 最小二乘法; 边缘检测; 椭圆拟合; 亚像素 中图分类号: TP39 1 文献标志码: A
图 1 算法流程图
2 实验结果及分析
2. 1 求解结果 本文提出的算法采用 Matlab 得以实现, 实验结果是在一台安 装有 Matlab 7 . 0 的机器上 运行 的。由 于一般的图片很大, Matlab 程序遍历图像搜索椭圆耗 时 较 长, 为 提 高 图 像 的 检 测 效 率, 在算法开始前对 图像进行预处理。方法为提取感兴趣区域, 只在该区域 检测 椭圆, 因 此 提 高 了 检 测 的 目 标 性, 从而提升 了检测速度。 首先对边缘进行检测, 然后需要对准椭圆点进行归一化处理: Abar =[ A( : , 1 )-dCenterXA ( : , 2 )-dCenterY ] ;
8] 。 因 此, 本文对 不足, 但是由于目标函数的表达非 常 复 杂, 所 以 求 解 过 程 工 作 量 很 大, 而且不易实现[
代数拟合法进行了改进, 旨在解决代数拟合中各参数贡献不同的问题, 弥补传统的最小二乘拟合在本文
最小二乘法拟合椭圆附带matlab程序
最小二乘法拟合椭圆设平面任意位置椭圆方程为:x 2 + Axy + By 2 + Cx + Dy + E = 0设 P i ( x i ,y i )( i = 1,2, ,N) 为椭圆轮廓上的 N( N ≥ 5 ) 个测量点, 依据最小二乘原理, 所拟合的目标函数为:N2F( A,B, C,D, E) = ∑ (x i2+ Ax i y i + By i 2+ Cx i + Dy i+ E)i=1欲使 F 为最小,需使F ?F?F ?F =?F?A===?D= 0?B?C?E由此可以得方程:∑ x i 2y i 2 ∑ x i y i 3∑ x i 2y i ∑ x i y i 2∑ x i y i∑ x i 3 y i34232A 2 2∑x i yi∑ y i∑x i yi∑ y i∑ y i∑ x i y i ∑ x i 2y∑ x i y2∑ x i3∑ x i y∑ x iB∑ x i 3iiC =-iD∑ x i y i2∑ y i 3∑ y i2∑ y i2 ∑ x i 2y i∑ x i y i[ E ][ ∑ x i y i∑ y i 2 ∑ x i ∑ y iN ] [ ∑ x i2]解方程可以得到A ,B ,C ,D ,E 的值。
根据椭圆的几何知识,可以计算出椭圆的五个参数:位置参数(θ,x 0, y 0 )以及形状参数( a, b) 。
x 0 =2BC-ADA 2 -4By 0 2D - A D=4BA 2-(2 - D 2 + 4BE- A 2 )a = √ 2- 4B) (B - 2B 2)+ 1)( A √A + (1-2 ( ACD -2 -D 2+ 4BE- A 2 )b = √ 2- 4B) (B + 2(1 - B 2)+ 1)( A √A +θ= tan-1√a 2 - b 2Ba 2 B -b 2附: MATLAB程序function [semimajor_axis, semiminor_axis, x0, y0, phi] = ellipse_fit(x, y)%%Input:%x —— a vector of x measurements%y —— a vector of y measurements%%Output:%semimajor_axis —— Magnitude of ellipse longer axis%semiminor_axis —— Magnitude of ellipse shorter axis%x0 —— x coordinate of ellipse center%y0 —— y coordinate of ellipse center%phi—— Angle of rotation in radians with respect to x-axis%%explain%2*b'*x*y + c'*y^2 + 2*d'*x + 2*f'*y + g' = -x^2%M * p = b M = [2*x*y y^2 2*x 2*y ones(size(x))],% p = [b c d e f g] b = -x^2.%p = pseudoinverse(M) * b.x = x(:);y = y(:);%Construct MM = [2*x.*y y.^2 2*x 2*y ones(size(x))];%Multiply (-X.^2) by pseudoinverse(M)e = M\(-x.^2);%Extract parameters from vector ea = 1;b = e(1);c = e(2);d = e(3);f = e(4);g = e(5);%Use Formulas from Mathworld to find semimajor_axis, semiminor_axis, x0, y0, and phidelta = b^2-a*c;x0 = (c*d - b*f)/delta;y0 = (a*f - b*d)/delta;phi = 0.5 * acot((c-a)/(2*b));nom = 2 * (a*f^2 + c*d^2 + g*b^2 - 2*b*d*f - a*c*g);s = sqrt(1 + (4*b^2)/(a-c)^2);a_prime = sqrt(nom/(delta* ( (c-a)*s -(c+a))));b_prime = sqrt(nom/(delta* ( (a-c)*s -(c+a))));semimajor_axis = max(a_prime, b_prime); semiminor_axis = min(a_prime, b_prime); if(a_prime < b_prime)phi = pi/2 - phi;end。
基于最小二乘法改进的随机圆检测算法
第38卷第5期 光电工程V ol.38, No.5 2011年5月Opto-Electronic Engineering May, 2011 文章编号:1003-501X(2011)05-0145-06基于最小二乘法改进的随机圆检测算法霍建亮1,曾翎1,王德胜2,曾军2( 1. 电子科技大学数学科学学院,成都 610054;2. 西南技术物理研究所,成都 610041 )摘要:提出了一种利用最小二乘法迭代修正随机圆检测的改进算法。
解决了由于随机圆检测算法中阈值选取不当,造成同一个圆被分割为多个圆的问题。
首先根据随机选取四个点求解出的圆参数,得到属于假设圆的点集;然后由当前点集,利用最小二乘法重新计算得到新的圆参数;接着根据新参数,检测集合中属于当前假设圆的新点,加入到当前点集中,重新计算圆参数,直到没有新的点加入;最后以此点集来判断是否为真实圆。
结果表明,此算法提高了圆检测的准确性。
关键词:圆检测;最小二乘法;随机采样;圆参数;边缘检测中图分类号:TP391.4 文献标志码:A doi:10.3969/j.issn.1003-501X.2011.05.026An Improved Randomized Algorithm for DetectingCircles Based on Least Square ApproachHUO Jian-liang1,ZENG Ling1,WANG De-sheng2,ZENG Jun2( 1. University of Electronic Science and Technology of China, Chengdu 610054, China;2. Southwest Institute of Technical Physics, Chengdu 610041, China )Abstract: An improved randomized circle detection algorithm based on least square approach was proposed. Because of the incorrect selection of threshold, a circle is divided into some circles. This algorithm can solve the problem perfectly.First, a randomized algorithm for detecting circles randomly picked four edge pixels each time and calculated circle parameters. The set of pixels belonging to the circle were obtained. Second, these pixels can calculate new circle parameters, and new pixels belonging to these parameters were obtained. Third, until no new pixel was added, it returned these pixels into the set. At last, we checked whether or not the set of these pixels was real circle. Compared with the original algorithm, the proposed algorithm enhances the stability and accuracy of circles detection.Key words: circle detection; least square approach; randomized sampling; circle parameter; edge detection0 引 言图像中圆的检测在计算机视觉领域,特别是自动化检验和装配领域发挥重要的作用。
matlab 拟合 椭圆
matlab 拟合椭圆拟合椭圆是一种常见的数学问题,在matlab中可以通过最小二乘法来实现。
椭圆是一个具有特定形状的曲线,由两个焦点和所有到这两个焦点距离之和相等的点组成。
在matlab中,我们可以使用椭圆方程的参数化形式来拟合椭圆。
我们需要定义一个椭圆的参数化方程。
一个标准的椭圆参数化方程可以表示为:x = a * cos(t)y = b * sin(t)其中,a和b分别是椭圆的长轴和短轴的长度,t是一个参数,可以取0到2*pi之间的任意值。
接下来,我们需要生成一些符合椭圆形状的数据点。
我们可以选择一些t的值,计算x和y的坐标,并加入一些随机的噪声。
这样我们就得到了一组椭圆上的离散数据点。
然后,我们可以使用matlab中的最小二乘法函数来拟合这些数据点。
最小二乘法是一种常用的数学优化方法,用于拟合数据点与理论模型之间的差异。
在matlab中,可以使用lsqcurvefit函数来实现最小二乘拟合。
在拟合过程中,我们需要定义一个误差函数,用于衡量数据点与拟合椭圆之间的差异。
常用的误差函数可以是欧氏距离或者平方差。
然后,我们可以使用lsqcurvefit函数来最小化这个误差函数,从而找到最佳的椭圆参数。
拟合完成后,我们可以得到拟合椭圆的参数,包括长轴和短轴的长度。
我们还可以计算椭圆的离心率,即焦点距离与长轴长度的比值。
离心率描述了椭圆的形状,当离心率为0时,椭圆退化为一个圆;当离心率小于1时,椭圆是一个椭圆;当离心率等于1时,椭圆退化为一个抛物线;当离心率大于1时,椭圆是一个双曲线。
我们可以绘制拟合椭圆和原始数据点的图像,观察拟合效果。
如果拟合良好,拟合椭圆应该能够经过大部分数据点,并且与原始椭圆形状相似。
matlab提供了一种简单而有效的方法来拟合椭圆。
通过最小二乘法,我们可以找到最佳的椭圆参数,并将其应用于实际问题中。
拟合椭圆可以在图像处理、计算机视觉和图形学等领域中得到广泛应用。
基于改进GVF和最小二乘法的弱边界椭圆提取
基于改进GVF和最小二乘法的弱边界椭圆提取张强;王坤;郭丽;高立群【期刊名称】《计算机应用》【年(卷),期】2007(27)4【摘要】提出一种新的基于改进GVF模型和最小二乘原理的快速、抗噪、弱边界椭圆提取算法.该方法首先通过中值滤波和弱边界梯度增强进行图像预处理,然后利用区域灰度的先验知识,引入高斯型模糊贴近度,与气球力结合形成模糊气球力和GVF场共同形成外力.模糊气球力在压痕区内形成很大推力使控点向边界快速移动,在边界处力很小,在边界外形成迅速加大的斥力,将控点推回边界.控点每迭代一定次数后,利用最小二乘原理,估算出椭圆准确位置,对椭圆边界采样作为新的初始轮廓,重新进行迭代,形成有约束形变.此方法应用到赤足足迹分析系统中,能够对常规方法很难处理的存在模糊、纹理噪声、大斑点噪声的弱边界图像,准确提取出椭圆轮廓,而且将经典GVF迭代次数减少一半以上,结果令人满意.【总页数】4页(P979-981,985)【作者】张强;王坤;郭丽;高立群【作者单位】东北大学,信息科学与工程学院,辽宁,沈阳,110004;东北大学,信息科学与工程学院,辽宁,沈阳,110004;东北大学,信息科学与工程学院,辽宁,沈阳,110004;东北大学,信息科学与工程学院,辽宁,沈阳,110004【正文语种】中文【中图分类】TP391.41【相关文献】1.基于改进GVF的运动目标提取算法 [J], 徐俊红;丁春峰;苏海滨;王亭岭2.基于改进的GVF Snake模型CT图像轮廓提取技术 [J], 张伟伟;赵歆波;张涛;王凯3.基于多尺度小波边缘检测改进GVF snake的颈部淋巴结超声图像轮廓提取 [J], 费勤水;张榆锋;陆玉婧;章克信;万国盛;崔龙芳4.基于椭圆最小二乘法和圆度轮廓误差评定的椭圆提取方法 [J], 王小林;熊新海;张高峰5.一种基于GVF变形模板的椭圆提取算法 [J], 邹益民;汪渤因版权原因,仅展示原文概要,查看原文内容请购买。
基于对称性的最小二乘拟合随机椭圆检测算法
基于对称性的最小二乘拟合随机椭圆检测算法
吕洪赫;姚振杰;易卫东
【期刊名称】《电子测量技术》
【年(卷),期】2011(34)5
【摘要】提出了1种基于椭圆对称性和最小二乘拟合的椭圆检测算法。
首先,通过CANNY算子获取边缘点;其次,改进采样方法,利用椭圆的对称性和旋转不变性,对边缘点进行采样,有效避免了传统算法大量无效采样;最后,利用分布均匀的两对采样点,使用最小二乘拟合的方法对椭圆进行检测。
实验表明,该算法有效地解决内存和运算量较大等问题。
利用椭圆的对称性和旋转不变性,大幅减少无效采样,采样点分布均匀,该算法提高了检测速度和准确性。
【总页数】5页(P37-41)
【关键词】椭圆检测;对称性;旋转不变性;最小二乘拟合
【作者】吕洪赫;姚振杰;易卫东
【作者单位】中国科学院研究生院研究生院
【正文语种】中文
【中图分类】TP399
【相关文献】
1.基于最小二乘法的改进的随机椭圆检测算法 [J], 陈海峰;雷华;孔燕波;周柳云;冯华君
2.基于最小二乘法的椭圆拟合改进算法研究 [J], 陈若珠;孙岳
3.基于边界的最小二乘椭圆拟合改进算法 [J], 王万国;王仕荣;徐正飞;杨文波;王振利;李丽
4.基于几何对称性的椭圆拟合算法 [J], 全燕鸣;凌泉
5.基于最小二乘法椭圆拟合的改进型快速算法 [J], 朱森荣;刘杰徽
因版权原因,仅展示原文概要,查看原文内容请购买。
c++ 最小二乘法拟合椭圆方程
C++最小二乘法拟合椭圆方程椭圆是数学中的一个重要概念,它在几何学、物理学、工程学等领域都有着广泛的应用。
在实际的问题中,我们经常需要对给定的椭圆数据进行拟合,以找到与其最符合的椭圆方程。
而在C++编程中,最小二乘法是求解拟合问题的一种常用方法。
本文将介绍如何利用C++语言实现最小二乘法拟合椭圆方程的过程。
一、最小二乘法原理1. 概念介绍最小二乘法是一种数学优化方法,用于对一组数据进行曲线拟合。
其核心思想是通过最小化实际观测值与拟合值之间的误差平方和来确定拟合参数的取值,从而使拟合曲线尽可能地接近实际观测值。
在椭圆拟合问题中,最小二乘法可以帮助我们找到与给定数据最匹配的椭圆方程。
2. 公式推导假设我们有一组椭圆数据点(xi, yi),我们需要找到一个椭圆方程,使得数据点到椭圆边界的距离之和最小。
椭圆方程的一般形式为:(x - x0)^2 / a^2 + (y - y0)^2 / b^2 = 1其中,(x0, y0)为椭圆中心坐标,a和b分别为长轴和短轴的长度。
我们可以建立参数方程表示椭圆上的点:x = x0 + a * cos(t)y = y0 + b * sin(t)将数据点(xi, yi)代入方程,可以得到误差函数:E = Σ[(x - xi)^2 / a^2 + (y - yi)^2 / b^2 - 1]^2其中,Σ表示求和符号,E表示误差平方和。
通过最小化误差函数E,可以求得参数x0, y0, a, b的最优解,从而得到最符合给定数据的椭圆方程。
二、C++代码实现1. 数据输入我们需要从外部读入椭圆数据点(xi, yi),并存储到数组或向量中,以备后续处理。
2. 参数优化接下来,我们可以使用最小二乘法对椭圆方程的参数进行优化。
C++中可以通过梯度下降法、牛顿法等数值优化算法来求解最小化误差函数的过程,从而得到最优的椭圆参数。
3. 结果输出我们可以将优化后的椭圆方程参数输出,得到拟合结果。
基于正交最小二乘的椭圆拟合
C S
R S
C
(4)
其中 C cos , S sin ,并且 R1 RT 。 3. 点到椭圆垂点计算
图 3 垂点计算
对于坐标系 XOY 下的点 ( Xi ,Yi ) ,在局部坐标系 xoy 下的坐标为 (xi , yi ) ,该
点垂直投影到椭圆上的垂点坐标为 ( Xi,Yi) / (xi, yi) ,如图 3 所示。垂线向量与垂 点处的切线垂直,则有
x2 a2
y2 b2
1
(1)
显然,坐标系 XOY 和 xoy 之间存在一个平移和旋转变换,表示为:
x R(X Xc )
(2)
或者
X R1x Xc
(3)
其中 x x yT 为局部坐标系 xoy 下点坐标; X X Y T 为坐标系 XOY 下
点坐标; Xc X c Yc T 为椭圆中心点坐标; R 为旋转矩阵:
B1
b2 (
yi
y)C
a2 (xi
x)S
(21)
b2xS a2 yC
B2
b2 ( yi
y)S
a2 (xi
x)C
(22)
a(b2 y2 )
B3
2ay(
xi
x)
(23)
b(a2 x2 )
B4 2bx( yi y)
(24)
(a2 b2 )xy
B5 (a2 b2 )(x2 y2 xxi yyi )
J X1, JY1,
J Xm , JYm ,
X c
Yc
a
b
X1
Y1
X
m
Ym
然后按照高斯-牛顿法迭代求解
(26)
ak1 ak a
(27)
python 最小二乘法 椭圆
python 最小二乘法椭圆
最小二乘法是一种用于拟合数据的统计方法,在椭圆的拟合中也可以使用最小二乘法。
椭圆可以用一个方程来描述:
$\frac{(x-a)^2}{a^2}+\frac{(y-b)^2}{b^2}=1$
其中,$(a,b)$为椭圆的中心坐标,$a$为长轴的半径,$b$为短轴的半径。
通过最小二乘法,我们可以找到使得拟合误差最小的椭圆参数。
假设我们有一组已知的椭圆上的点 $(x_i, y_i)$,其中
$i=1,2,...,n$。
我们的目标是找到最优的椭圆参数 $(a,b)$。
首先,我们定义误差函数:
$E(a,b)=\sum_{i=1}^{n} \left(\frac{(x_i-
a)^2}{a^2}+\frac{(y_i-b)^2}{b^2}-1\right)^2$
通过最小化误差函数,我们可以得到最优的椭圆参数。
我们可以使用数值优化方法,如最小二乘法的非线性最小化算法,来求解最优参数。
其中,常用的算法包括Levenberg-Marquardt算法、共轭梯度法等。
通过最小二乘法拟合椭圆可以更好地满足数据分布,提高预测精度。
在实际应用中,最小二乘法椭圆拟合广泛应用于图像处理、计算机视觉等领域,如目标检测、轮廓提取等。
基于最小二乘原理的平面任意位置椭圆的评价
第 23 卷 第4期
刘书桂等 : 基于最小二乘原理的平面任意位置椭圆的评价
247
式 ( 4) 。根据最小二乘原理 ,应以求目标函数 F ( A , B , C , D , E)
N
=
i =1
∑( x
2
i
+ Ax i yi + B y i + Cx i + Dy i + E) ( 5)
1 引言
现代制造业的发展 , 对三坐标测量机的智能化 程度要求越来越高 , 这需要不断的对几何量测试技 术和计算技术进行深入的研究 。其中的一个关键问 题是如何完善和充实坐标测量机软件系统 , 使得误 差评价更具科学性和可靠性 。这要求我们研究先进 的数学模型和算法 。 三坐标测量机有点位 、 自定中心和扫描等多种 探测模式 ,但无论使用何种探测模式 ,都是为了把被 测要素表面形状信息数值化 ,即 “采样” 。因此 ,坐标 测量机通过测量程序测到的只是一系列离散测量点 的空间坐标值 ,而不是需要的尺寸 、 位置和形状误差
y0 = a =
pi ( x i , yi ) 偏离最小二乘椭圆的偏差 Δri 为 :
N
∑
i =1
∑
∑
A B C =D E
i =1
∑x y
N i =1 N
2 2
i
i =1
i =1
∑
N i =1 N
xi y i yi yi
3
2
∑
i =1
∑
N i =1 N
xi yi yi yi
2
i =1 N
∑ ∑
N
∑x
2
最小二乘法椭圆拟合
最小二乘法椭圆拟合是一种常见的数学计算方法,用于拟合一个数据集为椭圆形状的点集。
具体步骤如下:
1.对原始数据进行中心化处理,即将所有数据减去其重心,则得到经过坐标轴原点的
新坐标系。
2.假设椭圆方程为:(x-x0)^2/a^2 + (y-y0)^2/b^2 = 1,其中(x0, y0)表示椭圆的中心,
a和b分别表示椭圆在�x和�y两个方向上的半轴长度。
3.使用最小二乘法求解椭圆参数。
假设有n个数据点(xi, yi),则需要构造关于6个未
知量(x0, y0, a, b)的方程组,每个数据点提供一个方程:(xi-x0)^2/a^2 + (yi-y0)^2/b^2 = 1。
则可以利用这些方程求解6个未知量,得到椭圆方程的解析式。
4.根据拟合出来的椭圆方程,可以计算任意点或形状相似的点的位置和属性。
需要注意的是,由于椭圆形状多样,而且数据存在误差,因此一般需要进行多次迭代,以提高拟合精度。
同时,椭圆方程的求解过程较为繁琐,可以采用一些数学计算软件(如MATLAB)来实现。
基于最小二乘法的平面任意位置椭圆轮廓度误差的精确计算
0 引言
平 面 曲 线轮 廓 ,如 渐 开 线 、椭 圆和 摆线 轮 廓 等 在 工 程 中被 广 泛 应 用 , 因 此 曲线 轮 廓 度 测量 、 识 别和误 差评 定成 为轮 廓度 测量 的重 要 内容n 】 。如
垂 1 = ∑ Z Ⅳ 1 x , Y l
I
( 3 )
∑
I
分 布 法 和 基 于代 数 距 离 的 最 小 二 乘法 来 评 定 椭 圆 轮 廓 度 误 差 。这 些评 定 方 法 对 于椭 圆误 差 的 评 定 都 有一 定的 作用和 效果 。
本 文 通 过 平 面 任 意位 置 椭 圆方 程 、椭 圆法 线 方 程 特 点 和 椭 圆 本身 性 质 ,利 用 最小 二 乘 原 理 实
务l 訇 化
基于最小二乘法 的平 面任意位置椭 圆轮廓度误差的 精确计算
Pr eci s e c al cul a t i on o f t he f or m er r or of el l i p t i c pr of i l e bas ed on I ea st s quar e m et h od
∑
i = I
解 方程 ( 3 ) 可 得到 , , C, D 和 E 的值 , 由参 考文献[ 3 ] 可得 到 拟 合 出的 最 小二 乘 椭 圆 的五 个主
参数:位置参数 ( O , , ) 及形状参数 ( 口 , b )。
收稿日期:2 0 1 2 —1 0 - 2 6 基金项目:河南省基础与前沿技术研 究计划项 目 ( 1 2 2 3 0 0 4 1 0 1 1 4 ) 作者简介:崔静伟 ( 1 9 8 6 一 ),女 ,硕士研究生 ,研究方向为精密测试技 术。
matlab 最小二乘法拟合椭圆
matlab 最小二乘法拟合椭圆在MATLAB中,可以使用最小二乘法对一组数据进行椭圆拟合。
最小二乘法是一种常见的数值拟合方法,通过最小化实际数据点与拟合曲线之间的差异来确定最佳拟合参数。
首先,将椭圆的方程表示为:(x - h)^2 / a^2 + (y - k)^2 / b^2 = 1其中(h, k)是椭圆的中心坐标,a和b是椭圆的半长轴和半短轴长度。
令数据点的坐标为(xi, yi),通过最小化以下误差函数来拟合椭圆:F = sum(((xi - h)^2 / a^2 + (yi - k)^2 / b^2) - 1)^2其中,求和遍历所有数据点。
为了找到最佳的拟合参数h、k、a和b,可以使用MATLAB中的最小二乘法拟合函数如lsqcurvefit。
以下是使用最小二乘法进行椭圆拟合的MATLAB代码示例:```Matlab% 假设有一组包含椭圆上的数据点的二维矩阵data,每行包含一个点的坐标(xi, yi)% 定义误差函数fun = @(params, x) ((x(:, 1) - params(1)).^2 ./ params(3)^2 + (x(:, 2) - params(2)).^2 ./ params(4)^2 - 1).^2;% 初始化参数的初始猜测值params0 = [0, 0, 1, 1];% 使用最小二乘法进行拟合params = lsqcurvefit(fun, params0, data(:, 1), data(:, 2));% 提取拟合的椭圆参数h = params(1); % 中心坐标xk = params(2); % 中心坐标ya = params(3); % 半长轴长度b = params(4); % 半短轴长度% 绘制原始数据点和拟合的椭圆figure;plot(data(:, 1), data(:, 2), 'bo'); % 原始数据点hold on;theta = linspace(0, 2*pi, 100);x = h + a*cos(theta); % x坐标y = k + b*sin(theta); % y坐标plot(x, y, 'r-', 'LineWidth', 2); % 拟合的椭圆axis equal;xlabel('x');ylabel('y');title('椭圆拟合');legend('数据点', '拟合椭圆');```在以上代码中,首先定义了误差函数fun,该函数计算数据点与拟合椭圆之间的差异。
scipy 最小二乘法拟合椭圆
scipy最小二乘法拟合椭圆椭圆曲线在数学和几何学中起着重要的作用,它具有许多特殊的性质和应用。
本文将介绍如何使用Scipy中的最小二乘法来拟合椭圆曲线,以便更好地理解和应用椭圆。
首先,让我们快速回顾一下最小二乘法。
最小二乘法是一种常见的数值分析方法,用于找到一条曲线或者函数,使该曲线与给定的一组数据点之间的误差最小化。
对于椭圆曲线,我们希望找到椭圆的参数,使其与给定的一组离散数据点最好地拟合。
在Scipy中,我们可以使用optimize.curve_fit()函数来进行最小二乘法拟合。
该函数可以拟合任意的模型函数,并返回最佳拟合参数。
由于椭圆曲线的方程比较复杂,我们需要自己定义一个模型函数来进行拟合。
假设我们已经有一组椭圆曲线上的数据点(x,y),我们可以将椭圆方程表示为:x=a*cos(θ)y=b*sin(θ)其中,a和b分别是椭圆的两个坐标轴的长度,θ是椭圆上的角度。
我们的目标是找到最优的a和b,使得上述方程与给定的数据点最好地拟合。
接下来,我们定义一个模型函数ellipse_func(),该函数接受输入参数θ和待拟合参数a、b,并返回对应的椭圆上的坐标点(x,y)。
```pythonimport numpy as npdef ellipse_func(θ,a,b):x=a*np.cos(θ)y=b*np.sin(θ)return x,y然后,我们可以使用optimize.curve_fit()函数进行拟合。
该函数需要传入模型函数、待拟合参数的初始值以及数据点,然后返回最佳拟合参数和协方差矩阵。
```pythonfrom scipy import optimizeθ=np.linspace(0,2*np.pi,100)x=3*np.cos(θ)+0.5*np.random.randn(100)y=5*np.sin(θ)+0.5*np.random.randn(100)popt,pcov=optimize.curve_fit(ellipse_func,θ,[x,y], p0=[2,4])在上述代码中,我们首先生成了一组椭圆上的随机数据点(x, y),然后调用optimize.curve_fit()函数进行拟合。
基于最小二乘法的改进的随机椭圆检测算法
第42卷第8期2008年8月浙 江 大 学 学 报(工学版)Journal of Zhejiang University(Engineer ing Science)Vol.42No.8Aug.2008收稿日期:2007205218.浙江大学学报(工学版)网址:/eng基金项目:宁波市科技计划资助项目(2006B100027).作者简介:陈海峰(1982-),男,浙江台州人,硕士生,从事数字图像处理工作.E 2mail:optical.dlz@通讯联系人:冯华君,男,教授,博导.E 2mail:fen ghj@DOI:10.3785/j.issn.10082973X.2008.08.015基于最小二乘法的改进的随机椭圆检测算法陈海峰1,雷 华1,孔燕波2,周柳云2,冯华君1(1.浙江大学现代光学仪器国家重点实验室,浙江杭州310027;2.宁波华光精密仪器有限公司,浙江宁波315153)摘 要:为了提高数字图像中椭圆检测的效率和准确性,提出了一个基于最小二乘法的改进的随机椭圆检测算法.该算法随机选取图像中的3个边缘点,在以这3个点为中心的窗口内,从边缘点中拟合出可能椭圆,并通过随机选取的第4个边缘点来确认可能椭圆.利用直接最小二乘法椭圆拟合的特性,引入可能椭圆边缘点收集和椭圆重新拟合的迭代过程来提取最终的椭圆参数.通过对含有不同噪声的仿真图片和包括残缺椭圆的实际图片的实验表明,新算法的改进是有效的.与原算法相比,新算法降低了对参数的依赖性,提高了检测的速度、稳定性和准确性,同时保留了原算法的抗噪声能力.关键词:椭圆检测;随机检测;最小二乘法中图分类号:T P391 文献标识码:A 文章编号:10082973X(2008)0821360205An improved randomized algorithm for detecting ellipsesbased on least square approachCH EN Hai 2feng 1,LEI H ua 1,KONG Yan 2bo 2,ZHOU Liu 2yun 2,FENG Hua 2jun 1(1.State Key Labor a tory of Moder n Optica l I nstr umentation ,Zhej ia ng Univer sity,H a ngz hou 310027,China ;2.H ua guang P recision I nstr ument Co.Ltd.,N ingbo 315153,China)Abstr act:An improved randomized ellipse detection algorithm based on least square approach was proposed to enhance the efficiency and accuracy of ellipse detection in digital images.T his algorithm r andomly se 2lects three edge points in the image,and then uses least squar e approach to fit all the edge points in three windows,which are defined by the three edge points.T he forth edge point is randomly selected to judge whether a possible ellipse exists in the image.Utilizing the char acteristic of direct least square fitting of ellipse,an iteration process of edge point collecting and ellipse refitting of possible ellipse was introduced to extract the final ellipse .s parameters.A rtificial images with different levels of noise and nature images containing incomplete ellipses were employed to test this algor ithm.Experimental results show that the impr ovements are pared with the original algorithm,the proposed algorithm reduces the de 2pendence on arguments of detection algorithm,and enhances the speed,stability and accuracy of ellipse de 2tection,while preserves the anti 2noise ability of the original algorithm.Key words:ellipse detection;randomized detection;least square approach 椭圆检测在模式识别领域一直是研究的热点.在过去的20多年中,人们提出了很多椭圆检测算法.例如:基于H ough 变换及其改进算法的椭圆检测算法、最小二乘拟合算法、基于随机抽样一致性(random sample consensus,RA NSA C)思想的算法、遗传算法以及结合椭圆几何特性的算法.这些算法大致可以分为投票(类聚)和最优化2大类.H ough变换、RANSAC算法都是采用映射的方法,将样本点映射到参数空间,采用累加器或者类聚的方法来检测椭圆.这类算法具有很好的健壮性,能够一次检测多个椭圆,但是需要复杂的运算和大量的存储空间.最优化方法包括最小二乘拟合算法、遗传算法以及其他最优化椭圆拟合方法.这类方法的主要特点在于准确性高,但是通常需要预先进行分割或分组处理,无法直接用于多个椭圆的检测,对噪声的敏感程度高于前一类方法.近年来,人们对椭圆检测的研究大多在数据点收集、椭圆真伪的验证和各类方法相互结合的方向上展开.Cheng等人[1]提出的受限随机Hough变换(restricted randomized H ough transform,RRH T),限制了点选取的范围,有效缩短了算法运行的时间,提高了算法的效率.Qiao等人[2]推荐的基于圆弧的椭圆验证方法极大地减少了虚假椭圆的输出.Li等人[324]提出的随机椭圆检测(randomized ellipse de2 tection,RED)方法,巧妙地结合了最小二乘法和随机H ough变换的优点,实现了基于随机H ough变换并利用最小二乘法进行椭圆拟合的检测方法,该方法不需要占用大量的存储空间,另外对噪声不敏感,能够快速检测多个椭圆.本文首先分析了RED算法,针对基于直接最小二乘法的椭圆拟合的特点,引入了一个可能椭圆边缘点收集和椭圆重新拟合的迭代过程,提出了一种基于最小二乘法的改进的随机椭圆检测算法,解决了原算法中存在的问题.通过对具有不同噪声的仿真图片和实际图片的实验,验证了算法改进的有效性.1RED算法1.1RED算法介绍RED方法首先随机选取3个边缘点,并分别以这3个边缘点为中心,定义具有相同大小的窗口,利用最小二乘法把这3个窗口中的所有边缘点拟合成一个假设存在的椭圆.然后在图像中随机选取第4个边缘点,判断这个点是否在假设的椭圆上.如果是,则椭圆存在的可能性较大,接着引入证据收集过程来验证椭圆是否真实存在.算法步骤如下.1)将所有边缘点p i=(u i,v i)加入集合V中.初始化失败,计数器f=0.令T f、T em、T a、T d、T r分别为给定的5个阈值.T f表示能够容忍的最大失败次数.n p表示集合V中边缘点的数量,当其与图片中边缘点总数的比值小于T em时,终止椭圆检测算法.在可能椭圆上选中的任意两点之间的距离必须大于阈值T a.T d表示所选的第4点到可能椭圆边界的距离的阈值.T r为椭圆残缺率阈值.2)当f=T f或者n p<T em时,算法终止;否则,随机从V中选择4个点p i(i=1,2,3,4),然后从V 中除去所选的4个点,V=V-{p i}.3)根据选中的4个边缘点求出可能的椭圆,保证在选中的用于求解椭圆参数的3个点中任意2个点之间的距离都大于T a,同时第4个点到可能椭圆边界的距离不能超过T d.否则,将p i(i=1,2,3,4)返回到V中,f=f+1,跳转到步骤2).4)假设E ijk是可能的一个椭圆.设计数器n=0.对于V中的点p m,检查它到椭圆E ijk边界的距离是否小于阈值T d.如果是,则n=n+1,并将p m从V 中去除.在遍历V中所有点之后,得到n e=n,即为满足阈值T d的边缘点的个数.5)如果n e\T r#C ij k,其中C ij k是可能椭圆E ijk 的周长,则跳转到步骤6).在其他情况下,认为这个可能的椭圆不是一个真实的椭圆,将步骤4)中的n e 个边缘点返回到V中,f=f+1,跳转到步骤2).6)可能存在的椭圆E ijk被证实是真实存在的一个椭圆.将f重置,跳转到步骤2).1.2RED算法中存在的问题RED算法使用直接最小二乘法椭圆拟合(di2 rect least squares fitting of ellipse)算法来求解可能椭圆的参数.H alir等人[5]指出由于该拟合算法是基于代数距离而非几何距离的,因而当拟合含有噪声的椭圆弧时,得到的椭圆通常偏小.当拟合图像中的椭圆数据点时,由于算法本身就有这种倾向,若选取的3个窗口中心点之间的距离较近,加上图像光栅化的影响(图像中椭圆的边缘点相对于理想的边缘点而言噪声总是存在的),拟合出来的椭圆和真实的椭圆差别很大.Li等人的算法只能依靠在提取可能椭圆时,随机选取的3点之间保持适当的距离,和在椭圆确认过程中使用较大的值来解决这个拟合算法带来的问题.但是这种处理方法在实际处理过程中存在较为明显的缺陷.1)算法的效率严重地依赖于参数T a,不合适的T a不仅增加了算法中证据收集的计算量,还会浪费很多有效采样次数.而且合适的T a值会随着被检测椭圆的大小发生变化,因此当处理包含大小差异较大的椭圆图形的图片时,T a的值难以确定.2)当T a取不到合适的值,T r又无法选取较大1361第8期陈海峰,等:基于最小二乘法的改进的随机椭圆检测算法的数值时(也就是处理包含大小差别较大的残缺椭圆的图像),采用直接椭圆拟合算法得到的偏小的可能椭圆,会因为较小的T r 值而被算法确认为真椭圆,从而产生误检.由于在检测到一个椭圆后,算法会将在这个椭圆上的边缘点去除,这种误检就可能导致一个真实存在的椭圆被分割成数个椭圆弧,继而引发更多的误检,使得算法的检测效率很低.3)算法只考虑了当选取的点之间距离较近时会拟合出虚假的椭圆,没有排除当距离过大时算法会从不同椭圆弧中拟合出虚假椭圆的情况.后一种情况会当T r 较小时,被算法确认为真椭圆,降低算法检测的效率.2 改进的RED 算法2.1 改进的椭圆提取过程在RED 算法的实际拟合过程中,用来拟合的边缘点始终位于最后拟合出来的椭圆的边界上.假设这些边缘点位于一个真实的椭圆上,那么可以选择适当的代数距离来收集距离拟合出的可能椭圆边界一定范围内的边缘点:D =|au 2+buv +cv 2+du +ev +1|.然后通过重新收集和重新拟合的迭代过程来找出这个真实的椭圆.通过此过程,无须事先找出最适合的T a ,只要将选取的3个点之间的距离控制在一定的范围即可.在新的提取过程中,求取适当的代数距离阈值非常关键.一般来说,如果一个点位于椭圆上,那么理想的D 值应该为零.实际上,由于图像是光栅化的,边缘上的点几乎不可能准确地落在椭圆的边界上.图1显示了一系列椭圆的D 值的最大值和平均值.这些椭圆的长轴、短轴、中心位置都是一致的,惟一不同的就是椭圆长轴和X 轴的夹角.图1 D 2H 曲线Fig.1 D 2H curves从图1中不难看出,在实际情况下,光栅化后椭圆的D 值大小随H 发生很大的变化.因此,本算法使用可能椭圆E ij k 求解自适应阈值T d :T d =|au 2A +bu A v A +vc 2A +d u A +ev A +1|,u A =u 0+(A +d diff )#cos U ,v A =v 0+(A +d diff )#sin U .式中:u 0、v 0为椭圆的中心点坐标,d d if f 为点到椭圆边界的最大距离,A 、U 分别为椭圆的长轴长度和椭圆的偏转角度.在迭代过程中,需要考虑在边缘二值图像中噪声的影响.过量的噪声将会延长迭代收敛的过程,因此在执行之前需要将这些噪声点从边缘图像中去除.本文采用黎自强等人[6]提出的去除孤立和半连续噪声点的方法.这两类噪声点的定义如下:在图像空间中,若P i (u i ,v i )的8个相邻点都不是图像点,则称P 为孤立噪声点.若P i (u i ,v i )的4@4邻域满足:1)边界点都不是图像点;2)除了P i (u i ,v i ),在其相邻点中还有1~3个图像点,则称P 为半连续噪声点.2.2 改进算法的具体步骤改进的RED 算法只须在原有算法的步骤5)和6)中插入新的椭圆提取过程.具体流程如下.1)初始化T =0;设置最大迭代次数T t 和最小变化率T n ,用于算法的终止;将n e 的值赋给n old .2)用收集来的位于可能椭圆边界附近的边缘点组成的可能椭圆边界点集合V e 来重新拟合可能椭圆E ijk ;T =T +1.3)根据可能椭圆E ijk 求解T d 的大小;遍历集合V 中的边缘点,寻找D [T d 的边缘点,更新n e 和可能椭圆边界点集合V e ,并将n e 赋给n new ;如果|n new -n o ld |/n old >T n 并且T <T t ,则跳转到步骤2);否则算法终止,V =V -V e ;输出椭圆参数.3 实验结果在一台Celeron 2.0GH z 的计算机上利用Matlab 6.5对改进的RED 算法进行了仿真图片和实际图片的实验.主要分析算法改进前后检测的时间、准确率[7]和抗噪声的能力.对于每一副图片,取100次检测的结果作为样本.选用的参数在各个实验中分别给出.在下面的图表中用Orig 表示原RED 算法,Mod 表示改进的RED 算法.实验1 分别用原RED 算法和改进的RED 算法对3幅640@480的仿真图片进行检测,如图2(a)所示.其中图片1含有3个不同方向的完整椭圆;图片2含有3个不同方向的重叠的椭圆;图片3含有3个不同方向的部分重叠的椭圆弧,并且这些1362浙 江 大 学 学 报(工学版)第42卷图2 改进的RED 算法与原RED 算法的检测结果(仿真图片)F ig.2 Detection results of improved RED algorithmand original RED algor ithm (a rtificial image)图片中包含的3个椭圆的大小差别较大.根据文献[4],实验选取T r =0.5,在原RED 算法中根据符合图片中最小残缺椭圆的检测要求,选取T a =30,算法的具体参数如表1所示.表1 实验选用的各个参数Tab.1 Arguments used in experiment 1实验T fT aOr igModT rT em d diff 实验1、250003030~3600.50.15实验350003030~1200.50.3(图片4)0.1(图片5)5图2(b)、(c)列出了原RED 算法和改进的RED 算法的检测结果.检测到的椭圆用粗线重绘,加号表示椭圆中心点位置.表3进一步给出了2个算法比较的结果,包括算法检测的最短时间t min 、最长时间t max 、平均时间t avg 、标准时间t std 和准确率p acc .在本文设定的实验例子中,原RED 算法无法继续使用T a 、T r 的限制来解决拟合算法带来的问题,导致整个椭圆算法运行时间较长,稳定性不佳,有较多误检的情况影响其他真实存在椭圆的检测.改进的RED 算法很好地解决了拟合算法带来的问题,无论在准确性、稳定性上,还是在检测速度上都超越了原RED 算法.实验2 检测改进的RED 算法抗椒盐噪声的能力.选用实验1中使用的仿真图片,在实验中加入的椒盐噪声的数量为N no ise ,从边缘点数量的1倍逐渐增加到6倍.为保证对照的有效性,原RED 算法处理的图片同样经过了前面提到的剔除2类噪声的处理.算法的参数和实验1相同.结果如图3和4所示.可以看出,改进的RED 算法在3倍噪声以内时表现非常出色,在超过这个范围之后,算法的准确性和消耗的时间都有所恶化,但是依然好于原RED 算法.实验3 选用实际的图片对改进的RED 算法进行测试,原RED 算法作为对照.图片大小均为640@480,图片4包含多个大小、方向各异,残缺度不同的椭圆,图片5包含多个偏心率接近零的椭圆,如图5(a)所示.实验中选用绝对误差模板(absolute differ 2ence mask,AD M)算法[8]作为边缘检测算子.同样选取T r =0.5,T a =30,T em 值则按照实际情况做了调整,具体参数见表1.实验结果如表2与图5所示.表2 改进的RED 算法与原RED 算法的性能比较Tab.2 Per for mance comparison of improved R ED algorithm and or igina l RED algorithm图片t min /s Or ig Mod t ma x /s Or ig Mod t avg /s Orig Mod t std /s Orig Mod p a cc /%Or ig Mod 10.0790.04632.550.6109.5770.2088.9000.12874.00100.020.0810.05924.85 1.1138.9000.267 6.8390.17253.33100.030.0840.05831.28 1.667 6.4440.3807.2870.25963.3399.674 6.235 1.29757.4714.7027.139.7559.820 2.11647.4790.00510.930.55966.063.53735.421.57511.880.64153.4089.691363第8期陈海峰,等:基于最小二乘法的改进的随机椭圆检测算法4结语本文对原有的基于最小二乘法的随机椭圆检测方法进行了改进.新方法在确认一个可能椭圆之后,使用自适应的T d阈值搜索边缘图片中距离可能椭圆边界一定范围内的点,并拟合出一个新的可能椭圆.通过重复上述搜索和重新拟合过程,准确地找到了图片中的椭圆.对仿真图片和实际图片的实验表明,改进算法有效解决了原方法存在的问题.使得算法对参数T a、T r的依赖程度大大下降,改善了算法对不同情况的适应性.新算法在提高检测的速度、稳定性和准确性的同时,保留了原算法抗噪声的能力.参考文献(References):[1]CHENG Zi2guo,LIU Yun2cai.Efficient technique forellipse detection using restrict ed randomized Hough tr ansfor m[C]M P roceedings of the I nter national Confer2 ence on Infor mation Technology:Coding a nd Computing.Las Vegas:IEEE,2004,2:7142718.[2]QI AO Yu,ONG S H.Ar c2based evaluat ion and detec2tion of ellipse[J].P atter n R ecognition,2007,40(7): 199022003.[3]LI Liang2fu,FENG Zu2r en,H E Kai2liang.A r andom2ized a lgorithm for detecting multiple ellipses based on least squar e approach[J].Opto2electr onics R eview, 2005,13(1):61267.[4]李良福,冯祖仁,贺凯良.一种基于随机H ough变化的椭圆检测算法研究[J].模式识别与人工智能,2005,18(4):4592464.LI Liang2fu,F ENG Zu2r en,H E Kai2liang.An im2 proved algorithm for ellipses det ection based on r andom2 ized H ough tr ansfor m[J].Pa tter n Recognition and Ar ti2 ficial Intelligence,2005,18(4):4592464.[5]HALIR R,FLUSSER J.Numerically st able dir ect leastsquar es fitting of ellipses[C]M Pr oceedings of the6th Inter national Conference in Centr al Eur ope on Computer Graphics a nd Visualization.Plzen:Univer sity of West Bohemia,1998:1252132.[6]黎自强,腾弘飞.广义Hough变换:多圆的快速随机检测[J].计算机辅助设计与图形学学报,2006,18(1): 27233.LI Zi2qiang,TENG H ong2fei.Generalized Hough tr ans2 form:fast randomized multi2circle detect ion[J].Com2 puter Aided Design and Computer Gra phics,2006,18(1):27233.[7]MCLAUGH LIM R A.Randomized Hough t ransform:impr oved ellipse detection with comparison[J].Patter n Recognition Letters,1998,19(3):2992305.[8]ZHANG Si2cheng,LIU Zhi2qiang.A r obust,real2t imeellipse detector[J].Patter n Recognition,2005,38(2): 2732287.1364浙江大学学报(工学版)第42卷。
开题报告 -椭圆检测
中北大学毕业设计开题报告学生姓名:庞磊峰学号:**********学院、系:电子与计算机科学技术学院计算机科学与技术系专业:软件工程设计题目:椭圆中心点的检测算法设计****:**2012年2月24日毕业设计开题报告1.结合毕业设计情况,根据所查阅的文献资料,撰写2000字左右的文献综述:文献综述一.本课题选题的目的和意义圆是自然界和人造物体中出现频率最高的基本元素之一。
由于圆常常投影为椭圆,圆形目标的提取问题往往转化为椭圆检测问题。
椭圆是平面上到两定点的距离之和为常值的点之轨迹,也可定义为到定点距离与到定直线间距离之比为常值的点之轨迹。
它是圆锥曲线的一种,即圆锥与平面的截线。
椭圆在方程上可以写为标准式x^2/a^2+y^2/b^2=1,它还有其他一些表达形式,如参数方程表示等等。
椭圆在开普勒行星运行三定律中扮演了重要角色,即行星轨道是椭圆,以恒星为焦点。
在模式识别领域中, 人脸识别和人头部的轮廓提取均可采用椭圆检测技术实现, 在计算机视觉以及自动控制等领域,椭圆参数的检测应用非常的广泛。
椭圆检测在图像识别与计算机识别领域一直占有非常重要的位置,边缘检测则是图像特征提取的首要要条件。
二.国内外研究现状在过去的二十年中,人们对椭圆检测进行了大量的研究,并得出许多算法。
主要分为两类,HOUGH变换检测法和使用最小二乘法对椭圆拟合。
HOUGH变换检测是形状检测的基本方法[1 - 2]。
HOUGH变换主要是通对形状的参数进行投票拟合, 因此对形状的部分缺损和噪声不敏感, 具有较高的检测度和鲁棒性[ 3]。
但是椭圆参数较多( 5个未知参数, 分别是椭圆的长轴 a, 短轴 b,旋转角度 ,以及中心坐标( x0, y0 ) ) , 基于HOUGH 变换检测椭圆, 需要在五维空间中进行投票,因此往往难以满足许多应用领域对时间和空间复杂度的要求, 如使用HOUGH变换在ARM 中进行椭圆检测是难以做到的。
为了加快椭圆检测速度, 提高检测的准确性, 许多研究者进行了大量研究[4 -11], 比如:采用随机HOUGH 变换方法(RHT)[4], 直接对椭圆的 5 个参数进行估计, 通过随机采样与动态链表存储来降低计算时间与内存需求[ 4]。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提出的受限随机 Hough 变换
( restricted randomized H ough t ransform, RRH T ) , 限 制了点选取的范围, 有效缩短了算法运行的时间, 提 高了算法的效率 . Qiao 等人 [ 2] 推荐的基于圆弧的椭 圆验证方法 极大地减 少了虚 假椭 圆的输 出. L i 等 人 提出的随机椭圆检测 ( random ized el lipse de t ect ion, RED) 方法, 巧妙地结合了最小二乘法和随 机 H ough 变换的优点 , 实现了基于随机 H oug h 变 换并利用最小二乘法进行椭圆拟合的检测方法 , 该 方法不需要占用大量的存储空间 , 另外对噪声不敏 感, 能够快速检测多个椭圆. 本文首先分析了 RED 算法, 针对基于直接最小 二乘法的椭圆拟合的特点 , 引入了一个可能椭圆边缘 点收集和椭圆重新拟合的迭代过程 , 提出了一种基于 最小二乘法的改进的随机椭圆检测算法, 解决了原算 法中存在的问题. 通过对具有不同噪声的仿真图片和 实际图片的实验, 验证了算法改进的有效性.
[ 3 4]
1
1. 1
RED 算法
RED 算法介绍 RED 方法首先随机选取 3 个边缘点 , 并分别以
基于最小二乘法的改进的随机椭圆检测算法
陈海峰1 , 雷
摘
华1 , 孔燕波2 , 周柳云2 , 冯华君1
( 1. 浙江大学 现代光学仪器国家重点实 验室 , 浙江 杭州 310027; 2. 宁波华光精密仪器 有限公司 , 浙江 宁波 315153) 要 : 为了提高数字图像中椭圆检测的效率和准确性 , 提出了一个基于最小二乘法的改进的随机椭圆检测算法 .
An improved randomized algorithm for detecting ellipses based on least square approach
CH EN H ai feng 1 , L EI H ua1 , KONG Yan bo 2 , ZH OU L iu yun 2 , FENG : 基于最小二乘法的改进的随机椭圆检测算法
1361
( random sample consensus, RA NSA C) 思想 的 算 法、 遗传算法以及结合椭圆几何特性的算法. 这些算 法大 致 可 以 分 为投 票 ( 类 聚 ) 和 最 优 化 2 大 类 . H ough 变换、 RANSAC 算法都是采用映射的方法 , 将样本点映射到参数空间, 采用累加器或者类聚的 方法来检测椭圆 . 这类算法具有很好的健壮性 , 能够 一次检测多个椭圆 , 但是需要复杂的运算和大量的 存储空间 . 最优化方法包括最小二乘拟合算法、 遗传 算法以及其他最优化椭圆拟合方法 . 这类方法的主 要特点在于准确性高, 但是通常需要预先进行分割 或分组处理, 无法直接用于多个椭圆的检测, 对噪声 的敏感程度高于前一类方法. 近年来, 人们对椭圆检测的研究大多在数据点 收集、 椭圆真伪的验证和各类方法相互结合的方向 上展开. Cheng 等人
Abstract: An im prov ed randomized ellipse det ection algo rithm based on least square appro ach w as proposed to enhance t he eff iciency and accuracy of ellipse det ect io n in digit al images. T his algo rithm r ando mly se l ects t hree edge point s in t he image, and t hen uses least squar e approach t o f it al l t he edge point s in t hree w indo w s, w hich are def ined by t he t hree edge point s. T he fo rt h edg e point is random ly select ed t o judge w het her a possible ellipse exists in t he im age. Ut ilizing t he char act eristic of direct least square fit t ing of el lipse, an it erat io n pro cess o f edge point co llect ing and ell ipse refit t ing of po ssible ellipse w as int roduced to ext ract t he final ellipse s paramet ers. A rt if icial im ag es w it h diff erent lev els o f noise and nat ure imag es cont aining inco mplet e ellipses w ere employed to t est t his algor it hm. Experiment al result s show t hat the impr ovement s are not able. Co mpared w ith the o riginal algorit hm, t he proposed alg orit hm reduces t he de pendence on arg ument s o f det ect ion alg orit hm , and enhances the speed, st abilit y and accuracy of ellipse de t ect ion, while preserves t he ant i noise abilit y of t he orig inal alg orit hm . Key words: ellipse det ect ion; random ized det ect ion; least square approach 椭圆检测在模式识别领域一直是研究的热点 . 在过去的 20 多年中 , 人们提出 了很多椭圆检 测算 法 . 例如 : 基于 H ough 变换及其改进算法的椭圆检 测算法、 最小二乘拟合算法、 基于随机 抽样一致性
收稿日期 : 2007 05 18.
浙江大学学报 ( 工学版 ) 网址 : w w w . journals. z ju. edu . cn/ eng
基金项目 : 宁波市科技计划资助项目 ( 2006B100027) . 作者简介 : 陈海峰 ( 1982- ) , 男, 浙江台州人 , 硕士生 , 从事数字图像处理工作 . E mail: opti cal . dlz@ gmail. com 通讯联系人 : 冯华君, 男 , 教授 , 博导 . E mail : f en ghj@ zju. edu. cn
[ 1]
数 . np 表示集合 V 中边缘点的数量 , 当其与图片中 边缘点总数的比值小于 T em 时, 终止椭圆检测算法. 在可能椭圆上选中的任意两点之间的距离必须大于 阈值 T a . T d 表示所选的第 4 点到可能椭圆边界的 距离的阈值 . T r 为椭圆残缺率阈值. 2) 当 f = T f 或者 np < T em 时 , 算法终止; 否则, 随机从 V 中选择 4 个点 p i ( i = 1, 2, 3 , 4 ) , 然后从 V 中除去所选的 4 个点, V = V - { p i } . 3) 根据选中的 4 个边缘点求出可能的椭圆, 保 证在选中的用于求解椭圆参数的 3 个点中任意 2 个 点之间的距离都大于 T a , 同时第 4 个点到可能椭圆 边界的距离不能超过 T d . 否则 , 将 p i ( i = 1, 2, 3, 4) 返回到 V 中 , f = f + 1 , 跳转到步骤 2) . 4) 假设 E ij k 是可能的一个椭圆. 设计数器 n = 0. 对于 V 中的点 p m , 检查它到椭圆 E ij k 边界的距离是 否小于阈值 T d . 如果是 , 则 n = n + 1, 并将 p m 从 V 中去除 . 在遍历 V 中所有点之后 , 得到 n e = n, 即为 满足阈值 T d 的边缘点的个数. 5) 如果 ne T r ! C ij k , 其中 C ij k 是可能椭圆 E ij k 的周长 , 则跳转到步骤 6 ) . 在其他情况下, 认为这个 可能的椭圆不是一个真实的椭圆 , 将步骤 4) 中的 ne 个边缘点返回到 V 中 , f = f + 1 , 跳转到步骤 2) . 6) 可能存在的椭圆 E ij k 被证实是真实存在的一 个椭圆 . 将 f 重置 , 跳转到步骤 2) . 1. 2 RED 算法中存在的问题 RED 算法使用直接最小 二乘法椭 圆拟合 ( di rect least squares f it t ing of ellipse) 算法来求解可能 椭圆的参数 . H alir 等人[ 5] 指出由于该拟合算法是基 于代数距离而非几何距离的 , 因而当拟合含有噪声 的椭圆弧时 , 得到的椭圆通常偏小. 当拟合图像中的 椭圆数据点时, 由于算法本身就有这种倾向, 若选取 的 3 个窗口中心点之间的距离较近, 加上图像光栅 化的影响( 图像中椭圆的边缘点相对于理想的边缘 点而言噪声总是存在的 ) , 拟合出来的椭圆和真实的 椭圆差别很大. L i 等人的算法只能依靠在提取可能 椭圆时 , 随机选取的 3 点之间保持适当的距离, 和在 椭圆确认过程中使用较大的值来解决这个拟合算法 带来的问题 . 但是这种处理方法在实际处理过程中 存在较为明显的缺陷. 1) 算法的效率严重地依赖于参数 T a , 不合适的 T 不仅增加了算法中证据收集的计算量 , 还会浪费 很多有效采样次数 . 而且合适的 T a 值会随着被检测