在java中使用openCV 霍夫圆识别图片中的圆(仅限java)

本文面向Java开发者,介绍了如何利用OpenCV的霍夫圆检测算法识别图片中的圆。核心代码中展示了 Imgproc.HoughCircles 方法的使用,详细解释了各个参数的含义,并提供了实际应用的示例。最后,给出了原图和处理后的图片效果。
摘要由CSDN通过智能技术生成

同样是面向java的同学

使用霍夫圆识别图片中的圆,操作相对简单

核心代码:

Imgproc.HoughCircles(InputArray image,OutputArray circles,int method,double dp,double minDist,double param1=100,double param2=100,int minRadius=0,int maxRadius=0); 

     image为输入图像,要求是灰度图像

    circles为输出圆向量,每个向量包括三个浮点型的元素——(x,y,radius)

    method为使用霍夫变换圆检测的算法,它的参数是CV_HOUGH_GRADIENT

    dp为第一阶段所使用的霍夫空间的分辨率,dp=1时表示霍夫空间与输入图像空间的大小一致,dp=2时霍夫空间是输入图像空间的一半

    minDist为圆心之间的最小距离,如果检测到的两个圆心之间距离小于该值,则认为它们是同一个圆心

    param1有默认值100。它是第三个参数method设置的检测方法的对应的参数。对当前唯一的方法霍夫梯度法CV_HOUGH_GRADIENT,它表示传递给canny边缘检测算子的高阈值,而低阈值为高阈值的一半。

   param2也有默认值100。它是第三个参数method设置的检测方法的对应的参数。对当前唯一的方法霍夫梯度法CV_HOUGH_GRADIENT,它表示在检测阶段圆心的累加器阈值。它越小的话,就可以检测到更多根本不存在的圆,而它越大的话,能通过检测的圆就更加接近完美的圆形了。

    minRadius和maxRadius为所检测到的圆半径的最小值和最大值

甭废话,上代码࿱

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值