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

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

参考资料:链接

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

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

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

  • 原理

    • radon变换含义

      • 图-5,gN值的大小代表直线上像素点的个数、radon变换产生的一个线性积分值
        radon变换产生的线性积分值越大,gN越大
      • 对一幅图像在某一特定角度θ下进行Radon变换会产生N个线积分值,而每一个线积分值会对应一个径向坐标x(图-5中的p1或p2...)

        • 图-3,给定一组ρθ 那么就可以得出一个沿直线L的积分值
        • 图-4,若有很多平行于L的直线,他们有相同的θ,径向坐标x却不同

          • 每个θ角度的Radon变换结果是有多个输出项R(特定角度下的Radon变换值也即线积分值)与x一一对应
    • radon变换基本思想
    • 了解[R,x]=radon(F,theta)

      • x:是直线L离图像中心的距离,设两个坐标系的原点为图像的中心点

        • 计算公式

          • floor((size(I)+1)/2),例如在一个20×30的图像中,其中心点为(10,15)
      • 二维矩阵R

        • radon变换后会得到一个二维矩阵,矩阵中峰值所在表征了原图中直线的信息,如上图所示,其中的黄点表示峰值(峰值的大小代表直线上点的个数)
          只要检测出峰值所在的位置,就可以得到直线的位置信息
        • 结合图可了解R,R是图像在radon变换后的线性积分值集合
        • R矩阵中最大的值是某个theta下(正好theta角所在的直线与原图中最粗的直线L相垂直),对图像进行Radon变换会产生N个线积分值的集合,直线L在变换后产生的点最亮
    • 图像中直线方程式的计算

      • 当在R矩阵中提取到直线的位置信息(x,θ),可计算出以图像中心点为原点的坐标系中的直线方程式(见下图)
      • 进行坐标系转换,将坐标系y'-x'(以图像中心点为坐标原点)转换y-x坐标系(为以图像矩阵第一行第一列像素点为原点)

        • 根据坐标系转换公式 y = -y’ + height_half(图高度一半) 和 x = x’ + width_half(宽度一半)

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

  1. hough变换是如何检测出直线和圆的

    (I)直线篇 1 直线是如何表示的? 对于平面中的一条直线,在笛卡尔坐标系中,常见的有点斜式,两点式两种表示方法.然而在hough变换中,考虑的是另外一种表示方式:使用(r,theta)来表示一条直线 ...

  2. Radon变换(Matlb)

    clear clc %只是尽量的大概的模拟出一个radon变换 %I = imread('Mark.bmp'); %I = imread('gantrycrane.png');I = imread(' ...

  3. 从零开始实现霍夫变换检测图像直线算法 python

    创作不易,如果对您有帮助,帮忙点赞哦! 一. 霍夫变换理解: 可参考:https://www.cnblogs.com/hellcat/p/9896426.html 二. 霍夫变换简介: 霍夫变换,是将 ...

  4. python 图像变化检测_霍夫变换检测图像直线算法python实现

    创作不易,如果对您有帮助,帮忙点赞哦! 一. 霍夫变换理解: 二. 霍夫变换简介: 霍夫变换,是将坐标由直角坐标系变换到极坐标系,然后再根据数学表达式检测某些形状(如直线和圆)的方法.当 l1直线 上 ...

  5. 直线检测——Radon变换/霍夫变换/基于快速傅里叶变换的直线检测

    1. 直线检测 1.1. Radon直线检测原理 基于Radon变换的直线检测的目的就是检测根据角度变化时出现的"局部峰值",即可以确定直线的方向,同时,峰值大小能够确定直线上点的 ...

  6. 图像倾斜校正 Radon 变换原理及函数

    radon校正 Radon(拉东)算法是一种通过定方向投影叠加,找到最大投影值时角度,从而确定图像倾斜角度的算法.具体过程如图所示 拉东变换 若函数F表示一个未知的密度,对F做radon变换,相当于得 ...

  7. C语言实现radon变换

    Radon变换: 考虑b=ax+y,将原来的XY平面内的点映射到AB平面上.则原来在XY平面上的一条直线的所有的点,在AB平面上都位于同一个点.通过记录下AB平面上的点的积累厚度,可反知XY面上的一条 ...

  8. 【CT算法,radon变换】基于MATLAB的CT算法,radon变换的三维建模仿真

    1.软件版本 MATLAB2021a 2.本算法理论知识 1.输入:T(x,y,z) 使用stl读取函数完成T的导入工作 2.做Radon变换,得投影图:P 正常Radon变换即可. 3.对P:应用斜 ...

  9. pythonsl火车加字_荐Python实现Radon变换——直接反投影和滤波反投影

    前几天我学习了Radon变换并用Python做了一个简单的程序(见上一篇博文),昨天看了一下逆Radon变换,尝试了一下简单的实现.我们可以通过对Sinogram图使用逆Radon变换来还原原始图像, ...

  10. 反Radon变换 C++实现

    文章目录 Radon变换原理 代码实现 对图像做滤波 对图像做反投影 创建新的dib对象并写入数据 完整代码 Radon变换原理 百度百科里面说的蛮清楚的,可以自己看一下. 频域添加了Ramp Fil ...

最新文章

  1. 图表示学习+图神经网络:破解AI黑盒,揭示万物奥秘的钥匙!
  2. java五子棋悔棋代码_小猿圈前端编写JS五子棋游戏
  3. NSIS 的 Modern UI 教程(一)
  4. concurrent: ThreadPoolExecutor 用法
  5. python计算机视觉编程——第一章(基本的图像操作和处理)
  6. Windows 平台安装 MongoDB
  7. Map(String ArrayList(Student))相关操作和遍历和利用Map(k v)统计字母出现次数
  8. linux下查看usb插拔日志,Linux:如何检测usb键盘是否已插入和拔出
  9. 关于单细胞批次矫正那些事(二) KBET 用于单细胞批次矫正结果的评估
  10. 20190906 On Java8 第十八章 字符串
  11. 《javascript高级程序设计》核心知识总结
  12. 流媒体之RTMP——librtmp拉流测试
  13. 常用公差配合表图_机械密封零件的公差配合与技术要求
  14. html 加号按钮变减号,带有javascript附加输入的加号/减号按钮
  15. C/C++ 电脑微信dat文件解密及工具分享
  16. android跳转QQ陌生人聊天或者加入QQ群
  17. 微信公众号做淘宝优惠券找券查券搜券和返利机器人的详细配置教程
  18. 网页pdf打印——window.print()
  19. 什么样的自学Java网站才适合学习者?
  20. Word如何拆分单元格

热门文章

  1. 万能口令生成器,一键批量生成。支持阿里系全家用域名生成淘口令,店铺链接,商品链接,手淘群,支付宝领红包等等...
  2. java毕业生设计医疗机构药房管理系统软件开发计算机源码+系统+mysql+调试部署+lw
  3. linux查找文件夹名称
  4. python+django+mysql运动场地预约系统毕业设计毕设开题报告
  5. 【资源分享】ppt的模版获取-可用于转正答辩、毕业答辩、课程答辩等等
  6. 2022保密教育线上培训考试 01
  7. 利用python编写个性二维码制作工具(支持微信名片二维码),并打包成EXE可执行文件。——001
  8. Mugeda(木疙瘩)H5案例课—教你做魔性H5弹幕-岑远科-专题视频课程
  9. 华为手机html文件是什么,如何备份华为手机文件
  10. 成都单片机开发-STC15F2K60S2-LQFP44引脚含义以及1号引脚实物位置