radon变换的原理-通过直线方程式的计算来检测出直线

       为了将梯形失真的图像进行矫正,我打算先检测出图像中的直线,再计算出图像水平方向和垂直方向的消失点→计算出投影变换矩阵来进行图像矫正。

这几天正在进行radon变换检测图像中的直线,有点心得,下面是radon变换的原理总结,是我结合了大量其他作者的文章并加上自己的想法,可以实现,供大家参考,有问题请帮忙指出

参考资料:链接

1.http://t.csdn.cn/FXUuC

2.http://t.csdn.cn/UIF7V

3.http://t.csdn.cn/9pHVj

  • 原理
    • radon变换含义radon变换的原理-通过直线方程式的计算来检测出直线_第1张图片radon变换的原理-通过直线方程式的计算来检测出直线_第2张图片
      • 图-5,gN值的大小代表直线上像素点的个数、radon变换产生的一个线性积分值
        radon变换产生的线性积分值越大,gN越大
      • 对一幅图像在某一特定角度θ下进行Radon变换会产生N个线积分值,而每一个线积分值会对应一个径向坐标x(图-5中的p1或p2...)radon变换的原理-通过直线方程式的计算来检测出直线_第3张图片
        • 图-3,给定一组ρθ 那么就可以得出一个沿直线L的积分值
        • 图-4,若有很多平行于L的直线,他们有相同的θ,径向坐标x却不同
          • 每个θ角度的Radon变换结果是有多个输出项R(特定角度下的Radon变换值也即线积分值)与x一一对应
    • radon变换基本思想radon变换的原理-通过直线方程式的计算来检测出直线_第4张图片
    • 了解[R,x]=radon(F,theta)radon变换的原理-通过直线方程式的计算来检测出直线_第5张图片
      • x:是直线L离图像中心的距离,设两个坐标系的原点为图像的中心点
        • 计算公式
          • floor((size(I)+1)/2),例如在一个20×30的图像中,其中心点为(10,15)
      • 二维矩阵Rradon变换的原理-通过直线方程式的计算来检测出直线_第6张图片
        • radon变换后会得到一个二维矩阵,矩阵中峰值所在表征了原图中直线的信息,如上图所示,其中的黄点表示峰值(峰值的大小代表直线上点的个数)
          只要检测出峰值所在的位置,就可以得到直线的位置信息
        • 结合图可了解R,R是图像在radon变换后的线性积分值集合radon变换的原理-通过直线方程式的计算来检测出直线_第7张图片
        • R矩阵中最大的值是某个theta下(正好theta角所在的直线与原图中最粗的直线L相垂直),对图像进行Radon变换会产生N个线积分值的集合,直线L在变换后产生的点最亮
    • 图像中直线方程式的计算
      • 当在R矩阵中提取到直线的位置信息(x,θ),可计算出以图像中心点为原点的坐标系中的直线方程式(见下图)radon变换的原理-通过直线方程式的计算来检测出直线_第8张图片radon变换的原理-通过直线方程式的计算来检测出直线_第9张图片
      • 进行坐标系转换,将坐标系y'-x'(以图像中心点为坐标原点)转换y-x坐标系(为以图像矩阵第一行第一列像素点为原点)radon变换的原理-通过直线方程式的计算来检测出直线_第10张图片
        • 根据坐标系转换公式 y = -y’ + height_half(图高度一半) 和 x = x’ + width_half(宽度一半)
        • radon变换的原理-通过直线方程式的计算来检测出直线_第11张图片

 

 

 

 

你可能感兴趣的:(图像处理)