https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/42532.pdf
1.直线检测
lsd算法 主页http://www.ipol.im/pub/art/2012/gjmr-lsd/
计算各个像素点的level-line角度,产生level-line field,在一定的容忍度t内将相同的level-line划分成不同的像素连通域,称为line support regions线段支持域。每个线段支持域都是直线分割候选区域,用一个相应的矩形覆盖整个线段支持域。
每个矩形都需要经过验证,矩形内像素点的level-line的角度与矩形主方向夹角容忍度为t的为对齐点。
对齐点和矩形内所有像素点个数的比值 决定了矩形是否为检测的线段。
这里引入一个相反的模型来预测直线误检的个数,虚警。
NFA:the number of false alarms
伪代码
更多的直线检测方法
2.消失点检测
ransac
两条直线可以确定一个交点,随机选择长度较长的两条直线计算交点
(齐次坐标系,两个线段叉乘的结果就是交点)
在5度的容忍度内,使用线段的长度进行投票
迭代获得最好的结果,去掉内点后检测下一个消失点
3.warp
3.1投影矩阵
将假设是 平面, 投影矩阵将无限远的点投影称为消失点
(齐次坐标系,两个点叉乘的结果就是连线)
使用这个矩阵,将还原图像中的直线的平行关系
3.2对齐