ZV_HOUGHLINE -- 霍夫找线

类型

几何

描述

从二值图像中使用霍夫变换找出满足要求的直线

语法

ZV_HOUGHLINE(img,lines,rho,theta,thresh,minLineLen,maxLineGap)

参数:

imgZVOBJECT类型,单通道二值图像

linesZVOBJECT类型,nx4矩阵,列上依次存储直线起始坐标和终点坐标

rho:累加器以像素为单位的距离精度,精度越高(值越小)越耗时,常用值1

theta:累加器以角度为单位的角度精度,精度越高(值越小)越耗时,常用值1

thresh 累加器阈值,即识别某部分为图中的一条直线时它在累加器中必须达到的投票值。大于thresh的线段才可以被检测通过并返回到结果中

minLineLen:最低线段长度,大于此参数的线段才被检测出来

maxLineGap:共线直线上两线段端点距离小于此参数的则被认为是一条线段

适用控制器

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

例子

10

ZVOBJECT img, img_bw, img_canny, dst, lines

DIM row, rows

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

ZV_THRESH(img,img_bw,120,255)'图像二值化

ZV_CANNY(img_bw,img_canny,10,200,3)'提取边缘

ZV_HOUGHLINE(img_canny,lines,1,1,30,10,10)'霍夫找线

ZV_GRAYTORGB(img_bw,dst)'二值图像转RGB

rows = ZV_MATROWS(lines)'获取lines的行数

FOR row = 0 TO rows-1

ZV_MATGETROW(lines,row,4,0)'获取lines的某一行

ZV_LINE(dst,TABLE(0),TABLE(1),TABLE(2),TABLE(3),zv_color(0,255,0))'绘制直线

NEXT