(回学校参加夏令营停了一周。。)
光条中心线提取-Steger算法
Steger算法基于Hessian矩阵,能够实现光条中心亚像素精度定位:
首先通过Hessian矩阵能够得到光条的法线方向,然后在法线方向利用泰勒展开得到亚像素位置。
(乱画的steger代码实现过程。。)
main(){ //StegerTest.cpp
initLineOpts(opt); //初始化opt
/*opt:
sigma:高斯核执行时的平滑量
high、low:滞后阈值,用于链接算法
mode:亮线or暗线被选中
compute-width:线宽是否提取
correct-pos:是否应用线宽和位置纠正
*/
imread(); //读取图片
stegerDetectPoints(image, opt, pts){ //StegerDetect.cpp
medianBlur();
GaussianBlur();
detect_lines(){ //position.c 检测线
convolve_gauss(image, k[i], width, height, sigma, DERIV_R); //convol.c _C/_RR/_RC/_CC
hr = compute_gauss_mask_(&nr, sigma);
hc = compute_gauss_mask_(&nc, sigma); //计算高斯平滑核掩膜
convolve_rows_gauss(image, maskr, nr, h, width, height);
convolve_