代码:Steger算法提取线激光条纹中心线(CPP+OpenCV)
最近一直在做线结构光扫描三维成像方面的内容,采用结构光进行扫描检测时,需要提取激光条纹的中心线,我利用Steger算法提取激光中心线的亚像素坐标。
下面先介绍一下steger算法的运行思路:(借鉴的别人的总结,直接截图白嫖过来了)
根据算法思路,我们
①输入图像
②图像处理
③利用高斯模板与图像卷积构造hessian矩阵
④求解hessian的特征值得到光条的法线方向
⑤法线方向泰勒展开获得亚像素位置
⑥选择合适的像素点,此时获得的是像素坐标(x0,y0),和对应的(tnx,tny)相加获得亚像素坐标。
/*****************************************************************
Function:Steger算法提取光条中心线
Author:K&J
Data:2020.5.11
IDE:win10 + vs2015
API介绍:
img.convertTo(img, CV_32FC1); //将矩阵img转换为CV_32FC1类型的
发布评论