|
类型 |
几何 |
|
描述 |
对图像使用canny边缘检测检测出边缘,然后对边缘点进行霍夫投票找出符合条件的圆。此算子很容易找出圆心,但可能找不到合适的圆半径,因此需要设置合适的最小半径和最大半径 |
|
语法 |
ZV_HOUGHCIRCLE(img,circles,minDis,edgeThresh,thresh,minR,maxR) 参数: img:ZVOBJECT类型,单通道灰度图像 circles:ZVOBJECT类型,nx3矩阵,列上依次存储圆心坐标和半径 minDis:最小距离,若两圆心的距离小于此值则认为是同一个圆 edgeThresh:canny边缘检测高阈值,低阈值默认使用高阈值的一半 thresh:累加平面某点是否是圆心的判定阈值。它越大,能通过检测的圆就更接近完美的圆形,常用值100 minR:圆最小半径 maxR:圆最大半径 |
|
适用控制器 |
支持ZV功能或者5系列以上的控制器 |
|
例子 |
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 |