Radon变换

2023-11-10

 

转自:http://baike.baidu.com/view/2435650.htm

       两维情况下radon变换大致可以这样理解:一个平面内沿不同的直线(直线与原点的距离为d,方向角为alfa)对f(x,y)做线积分,得到的像F(d,alfa)就是函数f的Radon变换。也就是说,平面(d,alfa)的每个点的像函数值对应了原始函数的某个线积分值。一个更直观的理解是,假设你的手指被一个很强的平行光源透射,你迎着光源看到的手指图像就是手指的光衰减系数的三维Radon变换(小小的推广)在给定方向(两个角坐标)的时候的值。

       一个最简单而直接的应用就是拿来检测图像里面含有的直线成分,很显然地,任何直线都会导致Radon像在该直线对应(d,alfa)处的极值。

转自: http://www.matlabsky.com/thread-11392-1-1.html

图像投影,就是说将图像在某一方向上做线性积分(或理解为累加求和)。如果将图像看成二维函数f(x, y),则其投影就是在特定方向上的线性积分,比如f(x, y)在垂直方向上的线性积分就是其在x轴上的投影;f(x, y)在水平方向上的线积分就是其在y轴上的投影。通过这些投影,可以获取图像在指定方向上的突出特性,这在图像模式识别等处理中可能会用到。

Radon变换(拉东变换),就是将数字图像矩阵在某一指定角度射线方向上做投影变换。这就是说可以沿着任意角度theta来做Radon变换。

% 实验Radon变换

% By lyqmath

% Dalian University of Technology

% School of Mathematical Sciences

clc; clear all; close all;

I = zeros(256, 256);

[r, c] = size(I);

I(floor(1/5*r:4/5*r), floor(3/5*c:4/5*c)) = 1;

figure;

subplot(2, 2, 1); imshow(I); title('原图像');

[R, xt] = radon(I, [0 45 90]); % 在0、45、90度方向做radon变换

subplot(2, 2, 2);

plot(xt, R(:, 1));

title('水平方向的radon变换曲线');

subplot(2, 2, 3);

plot(xt, R(:, 2));

title('45度方向的radon变换曲线');

subplot(2, 2, 4);

plot(xt, R(:, 3));

title('垂直方向的radon变换曲线');

由于radon变换将图像变换到按角度投影区域,和有名的hough类似,可以应用与检测直线。个人认为,通过将图像矩阵在多角度做积分投影,再对得到的数据做统计分析,可以确定出图像的一些基本性质。

转自:http://wiki.ilovematlab.cn/doc-view-696.html

使用方法:

1、R = radon(I, theta)

返回亮度图像在角度theta下的Radon变换R。

Radon变换是一幅图像在一个特定的角度下的径向线方向的投影。如果theta是一个标量,R则是一个包含在theta的列向量。如果theta是一个向量,R则是一个矩阵,据真的每一列是对应其中一个theta的Radon变换。如果忽略掉theta,则其默认为0:179.

2、[R,xp] = radon(...)

对应于R中的每一行,返回一个包含径向坐标的向量xp。xp中的径向坐标是沿着X’轴的数值,其为在theta下,X’轴逆时针方向映射来的。两个坐标系的原点为图像的中心点,且为floor((size(I)+1)/2),例如在一个20-by-30的图像中,其中心点为(10,15)。

算法讲解:一幅图像的Radon变换是每一个像素Radon变换的集合。此算法首先将一个像素分成四个子像素,并且四个子像素分别投影,如下图所示:

通过投影的位置以及bin的中心,每一个子像素的作用是按比例分裂两个最相邻的bins。如果子像素的投影与一个bin的中心相接,则坐标轴上的bin获得子像素的值,或者原始大小像素的1/4的值。如果子像素投影时,投影到了量bins之间,则子像素的值按比例分给两个bins。

转自:http://www.ilovematlab.cn/viewthread.php?tid=82671&pid=1455763&page=1&extra=page%3D1#pid1455763

Hough变换的基本原理:其基本原理在于利用点与线的对偶性,将原始图像空间给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。也即把检测整体特性转化为检测局部特性。比如可以将Hough变换推广为检测直线、椭圆、圆、弧线等。

Hough变换的基本思想:在原始图像坐标系下的一个点对应了参数坐标系中的一条直线,同样参数坐标系的一条直线对应了原始坐标系下的一个点,然后,原始坐标系下呈现直线的所有点,它们的斜率和截距是相同的,所以它们在参数坐标系下对应于同一个点。这样在将原始坐标系下的各个点投影到参数坐标系下之后,看参数坐标系下有没有聚集点,这样的聚集点就对应了原始坐标系下的直线。

Radon变换的基本原理:一个平面内沿不同的直线(直线与原点的距离为d,方向角为alfa)对f(x,y)做线积分,得到的像F(d,alfa)就是函数f的Radon变换。也就是说,平面(d,alfa)的每个点的像函数值对应了原始函数的某个线积分值。

Radon变换的基本思想:Radon变换可以理解为图像在ρθ空间的投影,ρθ空间的每一点对应一条直线,而Radon变换是图像像素点在每一条直线上的积分。因此,图像中高灰度值的直线会在ρθ空间形成亮点,而低灰度值的线段在ρθ空间形成暗点。对直线的检测转化为在变换区域对亮点、暗点的检测。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Radon变换 的相关文章

  • MATLAB - GUI 和 OPC 服务器

    我想在 MATLAB 中设计一个图形用户界面 可以使用 MATLAB 的过程控制对象链接和嵌入 OPC 工具箱连续读取数据 我怎样才能实现这个 我已经设计了图形用户界面 但我无法将数据读入图形用户界面 就这样做 type opctoolMA
  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 在 R 中使用 spplot 将多个绘图放在一个页面上?

    我知道如何在使用简单函数图时绘制两个图 old par lt par mfrow c 1 2 plot faithful main Faithful eruptions plot large islands main Islands yla
  • 修复 ggplot 中构面中的数据顺序

    我在使用 ggplot 绘制数据时遇到问题 我无法使每个方面内的数据正确排序 我的样本数据是 data lt structure list Parameter c 0 1 0 7 0 0 0 2 0 2 0 7 0 0 0 1 0 3 0
  • 在单个显示器中绘制多个 jpeg 图像

    我需要在单个组合显示器 或画布 中绘制和显示多个 jpeg 图像 例如 假设我有图像 a b c d jpg 每个图像的大小不同 我想将它们绘制在 2x2 网格的一页上 能够为每个子图设置标题也很好 我一直在彻底寻找解决方案 但不知道如何去
  • 在 MATLAB 中模拟 C++ 模板

    我试图找出创建 C 模板或 Java 通用对象的替代方案的最佳方法 出于多种不同的原因 我过去曾多次想这样做 但现在我想做的是为几个相关的类创建 saveobj 和 loadobj 函数 我的想法是 我想要一组通用的例程来创建默认结构 然后
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • Matlab 图像数据的 hist 函数

    我是 Matlab 新手 我想制作自己的函数 与 imhist 显示图像数据的直方图 完成相同的工作 但我对此完全是新手 我不知道如何做开发这样的功能 我开始做一些东西 但它非常不完整 function output args myhist
  • for 循环中的绘图没有可见点

    我正在努力解决我想使用 for 循环制作的情节 我知道当我在循环之后添加它时它会起作用 只是一个简单的图 但我想用另一种方式尝试一下 fib ones 1 10 for k 3 10 hold on fib k fib k 1 fib k
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • 在matlab中不使用for循环检查数组中的成员资格

    我想简化这段代码 使其无需 for 循环即可工作 for i 1 N for j 1 N if ismember j A PID i i TFP i j PID i i end end end 其中A是一个包含一些标签的矩阵 我之前存储的T
  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 正态分布平均值的贝叶斯推理玩具 R 代码 [降雪量数据]

    我有一些降雪观测 x lt c 98 044 107 696 146 050 102 870 131 318 170 434 84 836 154 686 162 814 101 854 103 378 16 256 我被告知它遵循正态分布
  • 绘制 Cox 回归的 Kaplan-Meier 图

    我使用 R 中的以下代码设置了一个 Cox 比例风险模型来预测死亡率 添加协变量 A B 和 C 只是为了避免混淆 即年龄 性别 种族 但我们真正对预测变量 X 感兴趣 X 是一个连续变量 cox model lt coxph Surv t
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 将向量(或弧)绘制到玫瑰图上。 MATLAB

    我有两个数据集 其中详细列出了angles 我正在绘制玫瑰图 angles 0 8481065519 0 0367932161 2 6273740453 n 另一个 从这组角度详细说明方向统计 angle error 0 848106563
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • 要在子集中显示的非数字条目的维恩图

    我有以下数据框 SET1 SET2 SET3 par1 par2 par1 par2 par3 par2 par3 par4 par5 我想制作一个维恩图 其中所有这些 parX 元素都显示在各自的子集中 即作为标签 而不仅仅是重叠元素的数

随机推荐

  • Linux服务——http协议及nginx服务

    目录 一 HTTP协议 1 跨网络的主机间通讯方式 套接字相关的系统调用 2 HTTP协议访问网站的过程 3 http协议状态码分类 常见的http协议状态码 4 MIME 5 URL组成 6 HTTP协议版本 7 系统处理http请求的工
  • idea项目名后出现中括号别名

    本文来说下idea项目名后出现中括号别名的问题 文章目录 概述 概述 如下图所示 idea项目名后出现中括号别名 项目名出现中括号是因为iml文件名和项目文件名不一样 需要更改iml文件名
  • BLE蓝牙笔记----数据包解析

    本文是参考一些博文和书籍做的笔记 如有不适联系删除 参考 https www cnblogs com iini p 8977806 html BLE4 0 低功耗蓝牙 协议 总结 目录 1 广播包 1 1 PDU Type 1 2 MAC地
  • MySQL高级篇——存储引擎和索引

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 java黑马笔记 目录 一 存储引擎 1 1 查看 设置存储引擎的命令
  • docker运行jar包加载外部配置文件

    1 创建Dockerfile文件 FROM java EXPOSE 8083 ADD data app 3 2 1 SNAPSHOT jar smart jar COPY application properties RUN bash c
  • 异常处理:让你的代码更加健壮

    简介 异常在编程中扮演着重要的角色 就像生活中的意外事件一样 它们是指在代码执行过程中可能发生的错误 从简单的空指针错误到复杂的文件读取错误 在这篇博客中 我们将深入了解异常的各个方面 包括异常的类型 处理方式以及如何自定义异常 目录 异常
  • oracle查询表空间大小以及每个表所占空间的大小

    1 查询数据库中所有的表空间以及表空间所占空间的大小 直接执行语句就可以了 select tablespace name sum bytes 1024 1024 from dba data files group by tablespace
  • mysql处理null值_详解MySQL处理NULL值的方法提高性能

    本文主要介绍的是MySQL数据库NULL的实际用法以及其实际应用代码的描述 以下就是文章的详细内容描述 望你会有所收获 1 对含空值列进行排序 建表 mysql gt create table t1 col1 int primary key
  • 解决Openwrt安装插件提示一下错误的办法

    解决Openwrt安装插件提示一下错误的办法 Openwrt安装17ce插件 提示一下错误 Collected errors check data file clashes Package 17ce wants to install fil
  • GLSL std140布局规则

    标准uniform块布局 The following example illustrates the rules specified by the std140 layout layout std140 uniform Example Ba
  • vue+elementui el-switch按钮的文字居内

    效果图 代码 UI图需求是将文字放在switch里面 而elementui默认的文字是在外面 这时候就要改样式了 可根据需求更改下面代码样式
  • SpringCloud Gateway整合Spring Security Webflux的关键点(痛点解析),及示例项目

    最近公司项目需要用到后端的认证 授权 且公司项目目前是基于SpringCloud Gateway的 所以想到都是一家的产品就决定使用Spring Security了 但是在整合过程中 经历了种种磨难 所以把最终的整合关键点列出来 让需要的读
  • 写一段关于社会福利最大化模型的实时定价的matlab代码

    我抱歉地告诉您 我不能为您提供完整的 Matlab 代码 因为这需要很多细节和预处理来实现 但是 我可以向您展示一些关于社会福利最大化模型实时定价的代码片段 以下是一个示例 Matlab 代码片段 其中展示了如何使用 fmincon 函数来
  • 求最大数(c语言)

    include
  • python判断列表是否有重复数据_Python如何判断列表里是否有重复元素

    Python如何判断列表里是否有重复元素 发布时间 2020 10 28 02 54 38 来源 亿速云 阅读 122 作者 小新 小编给大家分享一下Python如何判断列表里是否有重复元素 希望大家阅读完这篇文章后大所收获 下面让我们一起
  • 2020年给应届程序员,几点求职面试的建议

    简历书写 作为一个应届毕业生 如何让我们的简历出众 可以让hr一眼相中你呢 个人觉得以下几点很重要 1 项目经历或者大赛获奖经历 亮点 这里的项目经历不是你做得demo或者你在学校做得课程设计 而是实实在在的要给客户使用的软件 我一直有一个
  • Vue项目开发介绍

    Vue项目目录介绍 node modules 内部有很多当前项目依赖的模块 public 存放页面图标和不支持 JavaScript 情况时的页面 favicon ico 网站小图标 index html spa单页面应用 src 存放 v
  • CXF提供Client调用WebService接口的方法

    1 JaxWsProxyFactoryBean 简介 调用方式采用了和RMI类似的机制 即客户端直接服务器端提供的服务接口 interface CXF通过运行时代理生成远程服务的代理对象 在客户端完成对webservice的访问 几个必填的
  • 小样本利器1.半监督一致性正则 Temporal Ensemble & Mean Teacher代码实现

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • Radon变换

    转自 http baike baidu com view 2435650 htm 两维情况下radon变换大致可以这样理解 一个平面内沿不同的直线 直线与原点的距离为d 方向角为alfa 对f x y 做线积分 得到的像F d alfa 就