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

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

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

参考资料:链接

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

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

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

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

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值