由于找了很久都没找到用labview实现hough变换检测直线的程序,labview vision模块自带的hough变换使用起来太麻烦又不能满足要求,无奈自己手写了一个。

程序总体来说就是:
首先遍历二值化图像每一个值为255的点:
对于每个点,对应到参数p—theta平面是一条曲线,且theta范围为-90~90度,那么就依次遍历整条曲线(由于参数空间H是一个行为r,列为theta(也就是r行、180列)的数组,所以每条曲线只需遍历180个位置即可):
依据r = xcos(theta)+ysin(theta)计算出位置(r,theta),将(r,theta)位置的数值+1。
遍历完所有值为255的点后,得到的数组H便是对应于参数空间的数组(也就是累加器)。
程序放在:
如果只检测特定角度范围直线,加上范围即可:


本文介绍了一种使用LabVIEW手写实现Hough变换检测直线的方法,因为NI LabVIEW内置模块不满足需求。程序能遍历二值化图像,通过计算参数空间累加器来检测直线,并提供了程序下载链接,效果与MATLAB的hough函数相当。
最低0.47元/天 解锁文章
1572

被折叠的 条评论
为什么被折叠?



