逆radon变换matlab,Radon变换及其Matlab代码实现
Radon变换和Hough变换类似,最初是用于检测图像中的直线(例如笔直的街道边沿、房屋的边沿、
笔直的电线等)。
关于Hough变换,可以参考OpenCV中的代码和示例(其实除了Hough Lines还有Hough Circles等等变种),
此处不再赘述。
关于Radon变换,可以参考wiki或者百科,或者网络上的其他资料介绍。
这里做一个简单的总结。
首先准备一张灰度化的图像,及黑白图像,然后检测图像的边缘(如Canny算子,Sobel算子等等,
主要是灰度梯度方法吧)
假设我们得到一幅图像的边缘图像,然后找出这些边缘中的直线(段),除了之前的Hough算法之外,
这里使用Radon变换。
Radon变换核心在于“线积分”,针对一幅图像,具体来说就是:
设置一个方向(水平自左至右为0度,垂直自下至上为90度,以此类推)
按照这个方向对图像进行“列向量求和”
以0度为例,就是从图像的第1列开始,计算这一列上所有像素的灰度值之和;如此一直计算到最后一列。
以30度为例,如下图,X'为积分方向,对红色垂线所在列的像素进行灰度值叠加求和,
得到积分如图中的淡蓝色小块(仅作示意,可能不准确)
其他角度类似。
如果图像中有一条亮白的直线段,那么会存在这样的情况,
沿着某个方向积分得到的积分图没有“突变”(平缓,没有特别的尖峰)
沿着与之垂直的聆听一个方向则存在“突变”
下图是一个简单的示例
至此,你应当能体会到Radon变换的原理了。
接下来用Matlab进行测试
%% Radon Transform
function RadonTest()
fileName=input('Input image file name:');
srcImage=imread(fileName);
grayImage=rgb2gray(srcImage);
cannyImage=edge(grayImage,'canny');
theta=0:180;
[R,x]=radon(cannyImage,theta);
figure,imagesc(theta,x,R);
title('R_theta X');
xlabel('theta(degree)');
ylabel('X\prime');
colormap(hot);
colorbar;
end
首先载入一张图片,然后灰度化,接着检测边缘
然后针对边缘原图像进行Radon变换
最后得到结果
示例1
原图像(有一条直线段)
Radon变换结果
其中的极亮(暗)点对应的是 X'=-45, theta=50° (大概位置),这表明原图像中截距45处,50+90=140°方向有一条直线(段)
示例2
原图像
Radon变换结果
我正在尝试利用OpenCV或者EmguCV实现Radon变换,请关注后续更新。
本文原创,文章链接
http://blog.csdn.net/fengyhack/article/details/41873119
逆radon变换matlab,Radon变换及其Matlab代码实现相关推荐
- MATLAB中hough反变换,matlab中hough变换
hough 变换提取直线(Matlab 实现) Hough 变换提取直线一.实验目标实现用 Hough 变换检测直线的算法二.实验内容 1.读入图像选取有较多直线及部分曲线以作对比的...... j= ...
- matlab实现阶跃响应变换,z域的阶跃响应matlab
离散系统的的Z域分析及Matlab实现_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 离散系统的的Z域分析及Matlab实现_计算机软件及应用_...... 201 ...
- MATLAB坐标系变换之机器人工具箱系列(3)
1.前言: 在机器人的应用中,可以使用不同的坐标系来定义机器人,传感器和其他物体的位置.通常,对象在三维空间中的位置可以通过位置和方向值指定.这些值有多个可能的表示形式应用于某些特定应用程序.平移和旋 ...
- 沃尔什变换 matlab,Walsh-Hadamard 变换
Walsh-Hadamard 变换 Walsh-Hadamard 变换是一种将信号分解成一组基函数的非正弦类正交变换方法.这些基函数是 Walsh 函数,它们是值为 +1 或 –1 的矩形波或方波.W ...
- 为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换?
https://www.douban.com/note/164400821/ 写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创.在此向多位原创作者致敬!!! ...
- 【转】为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换?...
写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创.在此向多位原创作者致敬!!!一.傅立叶变换的由来关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶 ...
- gabor 变换matlab,Gabor变换到底是什么鬼?
欲讲gabor,必须先看下傅里叶变换有什么缺点! 1.傅里叶变换 1) 简介 数字图像处理的方法主要分成两大部分:空域分析法和频域分析法.空域分析法就是对图像矩阵进行处理:频域分析法是通过图像变换将图 ...
- 为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换
[纯技术帖]为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换来源: 陈诚--WECN的日志 写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,内容 ...
- PRI变换法原理解析及其matlab分析
---------------------------------------------------------------------------------------------------- ...
- matlab 电化学程序,基于MATLAB的电化学滴定曲线导数变换的实现
冶金分析 ,2010 ,30(10) :1619Metallurgical Analysis ,2010 ,30(10) :16219文章编号 :1000 - 7571(2010) 10 - 0016 ...
最新文章
- 操作系统 地址 概念
- comboBox绑定数据库后SelectedIndexChanged事件出错
- gradle maven_将工件从Gradle自动提升到Maven Central
- Vmware下CentOs7 桥接模式下配置固定IP
- rman打开oracle归档日志,Oracle RAC中使用RMAN管理归档日志
- Win11系统线程异常未处理怎么办?Win11系统线程异常未处理解决方法
- python工程师工资多少-Python全栈工程师为何这么火薪资这么高看了才知道
- jmoiron sqlx mysql_mysql 一(或其他数据库)
- 游戏筑基开发之结构体定义动态数组及常见问题(C语言)
- ubuntu16.04中创建新用户
- mysql表结构及索引脚本
- 《Java从小白到大牛精简版》之第6章 运算符(上)
- 一个注册表操作类,很有用!
- 【IMX6ULL笔记】--内核底层驱动初步探究
- http(S)系列之(五):android之HttpURLConnection源码解析(1)
- SPSS如何计算Cronbach alpha和进行折半信度检验
- 统计相关系数(3)——Kendall Rank(肯德尔等级)相关系数及MATLAB实现
- UBOOT源码分析的第一阶段start.S分析(3)
- verilog二分频代码verilog三分频代码
- (原创)使用AsyncTask(带修改线程池方式)+自定义ImageLoader+LRU算法对图片三级缓存及其显示优化(只有在ListView滑动停止的时候才去网络请求获取图片数据)