基于一维霍夫变换的椭圆检测

版本1.3.0.0 (25.4 KB) 马丁Simonovsky
一种基于霍夫投票的高效椭圆检测器

9.7 k下载

更新2022年5月9日

查看许可协议

编者按:此文件被选为MATLAB Central本周精选

概述:
通过检查所有可能的主轴(所有点对)并使用霍夫变换得到小轴来拟合一个椭圆。算法的复杂性取决于有效非零点的数量,因此,如果有关于问题的任何先验知识,在“params”输入参数中提供尽可能多的限制是有益的。
由于(可选的)随机化和完整的代码向量化,代码相当快。然而,由于该算法需要计算成对的点距离,因此可能会占用大量内存。如果出现内存错误,要么减少输入图像的采样,要么以某种方式减少其中非零点的数量。它可以处理大量的噪音,但可能有严重的咬合问题(主轴端点需要可见)
输入参数:
img
-单通道输入图像(灰度或二进制)。
参数个数
—算法参数:
* minMajorAxis:接受的最小主轴长度。
* maxMajorAxis:接受的主轴的最大长度。
*旋转,旋转跨度:限制主轴角度的规格,以度为单位。如果rotationSpan为(0,90),则只接受[rotation-rotationSpan, rotation+rotationSpan]范围内的角度。
* minAspectRatio:椭圆的最小纵横比(in (0,1))
*随机化:所有可能的点对的子抽样。不是检查所有N*N对,而是只对N*随机化对运行。如果为0,则关闭随机化。
* numBest:返回的Top numBest
* uniformWeights:用于偏爱某些点而不是其他点。如果为假,累加点将根据它们在图像中的灰度强度进行加权。如果为真,则将输入图像视为二值图像。
* smoothStddev:为了提供更稳定的解决方案,累加器与高斯核卷积。该参数指定以像素为单位的标准偏差。
详细的
—是否打印中间日志消息
返回值:
返回最佳拟合矩阵。每行(有参数。numBest of them)包含六个元素:[x0 y0 a b alpha score]是椭圆的中心,它的长半轴和小半轴,它的角度和分数。
基于:
-《一种新的高效椭圆检测方法》(谢永红,纪强/ 2002)
-随机子抽样的灵感来自“随机霍夫变换椭圆检测与结果聚类”(CA Basca, M Talos, R Brad / 2005)
更新日志:
1.3:轻微的性能改进,增加了冗长参数,修复了特定参数值的崩溃(向Brett Shoelson博士致敬)
1.2:固定破碎的格式(制表符x空格)
1.1:更高效的内存代码,更好的文档,更多的参数,更多可能的解决方案,示例代码。金宝搏官方网站
1.0:初始版本

引用作为

马丁·西蒙诺夫斯基(2022)。基于一维霍夫变换的椭圆检测(//www.tatmou.com/matlabcentral/fileexchange/33970-ellipse-detection-using-1d-hough-transform), MATLAB中央文件交换。检索

MATLAB版本兼容性
使用R2010b创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!