ZV_HOUGHCIRCLE -- 霍夫找圆

类型

几何

描述

对图像使用canny边缘检测检测出边缘,然后对边缘点进行霍夫投票找出符合条件的圆。此算子很容易找出圆心,但可能找不到合适的圆半径,因此需要设置合适的最小半径和最大半径

语法

ZV_HOUGHCIRCLE(img,circles,minDis,edgeThresh,thresh,minR,maxR)

参数:

imgZVOBJECT类型,单通道灰度图像

circlesZVOBJECT类型,nx3矩阵,列上依次存储圆心坐标和半径

minDis:最小距离,若两圆心的距离小于此值则认为是同一个圆

edgeThreshcanny边缘检测高阈值,低阈值默认使用高阈值的一半

thresh:累加平面某点是否是圆心的判定阈值。它越大,能通过检测的圆就更接近完美的圆形,常用值100

minR:圆最小半径

maxR:圆最大半径

适用控制器

支持ZV功能或者5系列以上的控制器

例子

11

ZVOBJECT img, img_bw, img_canny, dst, circles

DIM row, rows

ZV_READIMAGE(img,"test.bmp",0)'以原图像格式读取图片

ZV_HOUGHCIRCLE(img,circles,30,233,60,20,450)'霍夫找圆

ZV_GRAYTORGB(img,dst)'灰度图转RGB

rows = ZV_MATROWS(circles)'获取cricles的行数

FOR row = 0 TO rows-1

ZV_MATGETROW(circles,row,3,0)'获取circles的某一行

ZV_CIRCLE(dst,TABLE(0),TABLE(1),TABLE(2),zv_color(0,255,0))'绘制圆形

NEXT