(数字图像处理MATLAB+Python)第四章图像正交变换-第四、五节:Radon变换和小波变换

news/2024/4/27 18:00:08/文章来源:https://blog.csdn.net/qq_39183034/article/details/130146956

文章目录

  • 一:Radon变换
    • (1)Radon变换原理
    • (2)Radon变换实现
    • (3)Radon变换性质
    • (4)Radon变换应用
  • 二:小波变换
    • (1)小波
      • A:定义
      • B:实例
    • (2)一维小波变换
      • A:连续小波变换
      • B:时频特性
      • C:离散小波变换
      • D:正交小波
    • (3)二维小波变换
      • A:定义
      • B:图像小波分解
      • C:程序
    • (4)小波变换在图像处理中的应用

一:Radon变换

Radon变换:是一种用于将图像从空间域转换到投影域的数学工具,其基本思想是将图像中每个点的灰度值投影到一组直线上,然后将这些投影合并在一起形成投影域。Radon变换可以用于多种图像处理任务,包括图像重建、特征提取、图像分割等

(1)Radon变换原理

Radon变换原理:给定一个函数f(x,y)f(x, y)f(x,y),Radon变换将其投影到一组线上,得到一组投影值p(θ,s)p(\theta, s)p(θ,s)。其中θ\thetaθ表示投影线的角度,sss表示投影线与原点的距离。具体而言,对于每个角度θ\thetaθ,Radon变换将在直线lθ,sl_{\theta,s}lθ,s上对函数f(x,y)f(x, y)f(x,y)进行积分,其中lθ,sl_{\theta,s}lθ,s是距离原点为sss,与xxx轴成θ\thetaθ角度的直线。投影值p(θ,s)p(\theta, s)p(θ,s)即为积分结果

在这里插入图片描述

可以将Radon变换看作是从二维函数到一维函数的映射,其中每个投影值p(θ,s)p(\theta, s)p(θ,s)表示了投影线lθ,sl_{\theta,s}lθ,s上的一维信息。因此,Radon变换可以用于从一组投影值中重建原始函数f(x,y)f(x, y)f(x,y)。这种逆变换被称为逆Radon变换或反投影

(2)Radon变换实现

MATLAB实现:相关函数如下,具体解释可看MATLAB帮助手册

  • [R,xp]=radon(I,theta):Radon变换是一种用于图像处理中的特征提取的方法,可以用于检测图像中的直线特征
    • I为输入的图像
    • theta为变换角度
    • R为变换后的结果
    • xp为变换后的坐标

程序1:对图像进行指定方向上的Radon变换

  • 首先,代码读取名为’block.bmp’的灰度图像,并将其分别进行0度和45度方向的Radon变换
  • 然后,使用subplot函数将原图像和两个变换后的图像显示在同一张图中,方便比较
  • 最后,代码展示了两个变换后的图像的Radon变换曲线,分别对应0度和45度方向。这些曲线可以用于检测图像中的直线特征
clear,clc,close all;
Image=rgb2gray(imread('block.bmp'));
[R1,X1]=radon(Image,0);
[R2,X2]=radon(Image,45);
subplot(131),imshow(Image),title('原图');
subplot(132),plot(X1,R1),title('0度方向的radon变换曲线');
subplot(133),plot(X2,R2),title('45度方向的radon变换曲线');

在这里插入图片描述

程序2:对图像进行Radon变换和反变换

  • 首先,它读取了名为 “block.bmp” 的图像,并将其转换为灰度图像
  • 然后,它使用 “radon” 函数计算了图像在 0 到 180 度方向上的 Radon 变换曲线集合,并找到了这些曲线集合中的最大值
  • 接着,它使用 “iradon” 函数对这些曲线进行反变换,从而重建出原始图像
  • 最后,它使用 “subplot” 函数将原始图像、Radon 变换曲线集合和重建图像显示在同一张图上
clear,clc,close all;
Image=rgb2gray(imread('block.bmp'));
theta=0:10:180;
[R,X]=radon(Image,theta);
C=max(R);
result=iradon(R,theta);
subplot(131),imshow(Image),title('原图');
subplot(132),imagesc(theta,X,R),title('0-180度方向的radon变换曲线集合');
subplot(133),image(result),title('重建图像');

在这里插入图片描述

Python实现:使用Python实现上述同样的功能

程序1:对图像进行指定方向上的Radon变换

import cv2
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']# Load the image
Image = cv2.imread('block.bmp', cv2.IMREAD_GRAYSCALE)# Perform Radon transform
theta = np.arange(0, 180, 1)
R = cv2.radon(Image, theta)# Display the results
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(10, 5))
ax1.imshow(Image, cmap='gray')
ax1.set_title('Original Image')
ax2.plot(R[:, 0])
ax2.set_title('Radon Transform (0 degrees)')
ax3.plot(R[:, 45])
ax3.set_title('Radon Transform (45 degrees)')
plt.show()

程序2:对图像进行Radon变换和反变换

import cv2
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']# Load the image
Image = cv2.imread('block.bmp', cv2.IMREAD_GRAYSCALE)# Perform Radon transform
theta = np.arange(0, 181, 10)
R = cv2.radon(Image, theta)# Get the maximum value of the Radon transform
C = np.max(R)# Perform inverse Radon transform
result = cv2.remap(R, theta, None, cv2.INTER_LINEAR)# Display the images using matplotlib
fig, axs = plt.subplots(1, 3, figsize=(10, 10))
axs[0].imshow(Image, cmap='gray')
axs[0].set_title('Original Image')
axs[1].imshow(R, cmap='gray', extent=(0, 180, 0, R.shape[0]), aspect='auto')
axs[1].set_title('Radon Transform')
axs[2].imshow(result, cmap='gray')
axs[2].set_title('Reconstructed Image')
plt.show()

(3)Radon变换性质

线性:Radon变换是线性的。即,对于任意常数a,ba,ba,b和函数f,gf,gf,g,有以下等式成立

R{af+bg}=aR{f}+bR{g}\mathcal{R}\{a f+b g\}=a \mathcal{R}\{f\}+b \mathcal{R}\{g\} R{af+bg}=aR{f}+bR{g}

其中R⋅\mathcal{R}{\cdot}R表示Radon变换。这个性质意味着可以通过对原始函数进行线性组合来计算其Radon变换

平移性:Radon变换是平移不变的。即,对于函数f(x,y)f(x,y)f(x,y)和距离向量d=(dx,dy)d=(d_x,d_y)d=(dx,dy),有以下等式成立

R{f(x−dx,y−dy)}(θ,s)=R{f(x,y)}(θ,s−dxcos⁡θ−dysin⁡θ)\mathcal{R}\left\{f\left(x-d_{x}, y-d_{y}\right)\right\}(\theta, s)=\mathcal{R}\{f(x, y)\}\left(\theta, s-d_{x} \cos \theta-d_{y} \sin \theta\right) R{f(xdx,ydy)}(θ,s)=R{f(x,y)}(θ,sdxcosθdysinθ)

这个性质意味着可以通过平移原始函数来计算其在不同位置上的Radon变换

相似性:Radon变换是相似变换不变的。即,对于函数f(x,y)f(x,y)f(x,y)和比例因子aaa,有以下等式成立

R{f(ax,ay)}(θ,s)=1∣a∣R{f(x,y)}(θ,s∣a∣)\mathcal{R}\{f(a x, a y)\}(\theta, s)=\frac{1}{|a|} \mathcal{R}\{f(x, y)\}\left(\theta, \frac{s}{|a|}\right) R{f(ax,ay)}(θ,s)=a1R{f(x,y)}(θ,as)

微分:Radon变换具有微分性质。即,对于函数f(x,y)f(x,y)f(x,y),有以下等式成立

∂∂sR{f(x,y)}(θ,s)=−∫−∞∞∂∂yf(x,y)cos⁡θ−∂∂xf(x,y)sin⁡θdx\frac{\partial}{\partial s} \mathcal{R}\{f(x, y)\}(\theta, s)=-\int_{-\infty}^{\infty} \frac{\partial}{\partial y} f(x, y) \cos \theta-\frac{\partial}{\partial x} f(x, y) \sin \theta d x sR{f(x,y)}(θ,s)=yf(x,y)cosθxf(x,y)sinθdx

这个性质意味着可以通过对Radon变换进行微分来计算原始函数的导数

(4)Radon变换应用

Radon变换应用

  • CT图像重建:计算机断层成像(CT)是一种医学成像技术,通过对人体进行X射线扫描来获取其内部结构的三维图像。CT图像可以通过Radon变换进行重建,将CT扫描的投影数据转换为图像数据。这是由于CT扫描是在不同方向上获取的一系列投影图像,而Radon变换可以将这些投影数据转换为图像数据
  • 边缘检测:边缘是图像中最重要的特征之一,因为它们可以提供关于图像中物体的轮廓和形状的信息。Radon变换可以用于检测边缘,因为边缘在投影域中表现出明显的特征。通过检测Radon变换后的图像中的峰值,可以确定原始图像中的边缘位置
  • 特征提取:Radon变换还可以用于提取图像中的其他特征,例如纹理和形状。通过计算Radon变换的角度分布函数,可以获得图像中纹理和形状的信息
  • 图像分割:图像分割是将图像分成若干个互不重叠的区域的过程。Radon变换可以用于图像分割,因为不同区域的投影数据在投影域中表现出不同的特征。通过分析Radon变换后的图像,可以确定原始图像中不同区域的位置

二:小波变换

小波变换:是一种数学工具,用于将信号分解成不同的频率组件。类似于频谱分析,但小波变换可以捕捉到瞬态信号中的时间和频率信息。简单来说,它可以将信号分成多个不同时间长度和频率范围的子信号,以便更好地理解和处理原始信号

(1)小波

A:定义

小波:小波变换中的“小波”指的是一种基本的函数,可以用于将信号分解成不同的频率组件。这些小波函数具有紧凑的支撑和可变的频率和时间分辨率,使得它们可以在时域和频域之间转换,并能够更好地捕捉信号中的局部特征。数学上,小波是一种能够满足一定条件的局部有限能量函数,通常被定义为具有均值为零的波形函数和尺度函数的线性组合。通过将信号与不同尺度和位置的小波函数进行内积运算,可以得到信号在不同频率上的分解系数,进而实现小波变换。设函数ψ(t)\psi(t)ψ(t)满足∫Rψ(t)dt=0\int_{R} \psi(t) d t=0Rψ(t)dt=0,对其进行平移和伸缩产生函数族:ψa,b(t)=1aψ(t−ba),a,b∈R,a≠0\psi_{a, b}(t)=\frac{1}{\sqrt{a}} \psi\left(\frac{t-b}{a}\right),a,b\in R,a\not=0ψa,b(t)=a1ψ(atb),a,bR,a=0ψ(t)\psi(t)ψ(t)称为基小波或母小波,α\alphaα为伸缩因子,bbb为平移因子,ψa,b(t)\psi_{a,b}(t)ψa,b(t)ψ(t)\psi(t)ψ(t)生成的连续小波。小波有如下特点

  • 紧支撑性 小波函数在小范围内波动,能量有限,超出一定范围时,波动幅度迅速衰减,具有速降性
  • 变化性 小波函数随尺度因子的变化而变化
  • KKK阶消失矩 ∫RtkΨ(t)dt=0,k=0,1,⋯,K−1\begin{array}{l}\int_{R} t^{k} \Psi(t) d t=0 ,\quad k=0,1, \cdots, K-1\end{array}RtkΨ(t)dt=0,k=0,1,,K1

B:实例

Haar小波:下图为Harr小波及其频谱

{ΨH(t)={10≤t<1/2−11/2≤t<10其他 ΨH(ω)=1−2eiω2+e−iωωi\left\{\begin{array}{l}\Psi_{H}(t)=\left\{\begin{array}{cc}1 & 0 \leq t<1 / 2 \\-1 & 1 / 2 \leq t<1 \\0 & \text { 其他 }\end{array}\right. \\\Psi_{H}(\omega)=\frac{1-2 e^{\frac{i \omega}{2}}+e^{-i \omega}}{\omega i}\end{array}\right. ΨH(t)=1100t<1/21/2t<1 其他 ΨH(ω)=ωi12e2+e

在这里插入图片描述

Morlet小波:下图为Morlet小波及其频谱

{Ψ(t)=π−1/4(e−iω0t−e−ω02/2)e−t2/2Ψ(ω)=π−1/4[e−(ω−ω0)2/2−e−ω02/2e−ω2/2]\left\{\begin{array}{l}\Psi(t)=\pi^{-1 / 4}\left(e^{-i \omega_{0} t}-e^{-\omega_{0}^{2} / 2}\right) e^{-t^{2} / 2} \\\Psi(\omega)=\pi^{-1 / 4}\left[e^{-\left(\omega-\omega_{0}\right)^{2} / 2}-e^{-\omega_{0}^{2} / 2} e^{-\omega^{2} / 2}\right]\end{array}\right. Ψ(t)=π1/4(eiω0teω02/2)et2/2Ψ(ω)=π1/4[e(ωω0)2/2eω02/2eω2/2]

在这里插入图片描述

Mexico草帽小波:下图为Mexico草帽小波及其频谱

Ψ(t)=(23π−1/4)(1−t2)e−t2/2\Psi(t)=\left(\frac{2}{\sqrt{3}} \pi^{-1 / 4}\right)\left(1-t^{2}\right) e^{-t^{2} / 2} Ψ(t)=(32π1/4)(1t2)et2/2

在这里插入图片描述

(2)一维小波变换

A:连续小波变换

B:时频特性

C:离散小波变换

D:正交小波

(3)二维小波变换

A:定义

B:图像小波分解

C:程序

(4)小波变换在图像处理中的应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_286483.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盐城北大青鸟告诉你互联网大厂的哪些岗位不限专业?

进大厂是毕业生、职场人梦寐以求的工作&#xff01; 除了高薪以外&#xff0c;大厂具有舒适的工作环境&#xff0c;一流高校的同事&#xff0c;高额的住房补贴&#xff0c;健身房&#xff0c;下午茶&#xff0c;重点是还有营养丰富的员工餐&#xff01; 那互联网公司都有什么…

Adaptive AUTOSAR——State Management(VRTE 3.0 R21-11)

状态管理是自适应平台服务中的一个功能集群。 在自适应平台中&#xff0c;状态决定了一组活动的自适应应用程序。 特定于项目的应用程序&#xff0c;即状态管理器&#xff0c;决定何时请求状态更改&#xff0c;从而更改当前活动的应用程序集。状态管理器是特定于项目的&#…

基于NXP iMX8M Mini处理器测试DPDK

By Toradex秦海 1). 简介 DPDK (Data Plane Development Kit) 软件是一组用户空间库和驱动程序&#xff0c;可加速在所有主要 CPU 架构上运行的网络数据包处理工作负载&#xff0c;以便提升整个网络数据服务的QoS。其最早由 Intel 大约 2010年创建&#xff0c;后由6WIND公司发…

【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )

文章目录一、元素的显示与隐藏二、display 隐藏对象1、display 隐藏对象语法说明2、display 显示元素代码示例3、display 隐藏元素代码示例三、visibility 隐藏对象1、visibility 隐藏对象语法说明2、visibility 显示对象代码示例3、visibility 隐藏对象代码示例四、overflow 隐…

96年阿里P7晒出工资单:狠补了这个,真香...

最近一哥们跟我聊天装逼&#xff0c;说他最近从阿里跳槽了&#xff0c;我问他跳出来拿了多少&#xff1f;哥们表示很得意&#xff0c;说跳槽到新公司一个月后发了工资&#xff0c;月入5万多&#xff0c;表示很满足&#xff01;这样的高薪资着实让人羡慕&#xff0c;我猜这是税后…

MongoDB 聚合管道的集合关联($lookup)及合并($unionWith)

目前为止&#xff0c;我们已经介绍了一部分聚合管道中的管道参数&#xff1a; $match&#xff1a;文档过滤 $group&#xff1a;文档分组&#xff0c;并介绍了分组中的常用操作&#xff1a;$addToSet&#xff0c;$avg&#xff0c;$sum&#xff0c;$min&#xff0c;$max等。 $add…

可用的rtsp ,rtmp地址以及使用VLC和ffmpeg 播放视频流

可用的 rtmp地址: rtmp://ns8.indexforce.com/home/mystream 可用的 rtsp地址: rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 可搭配VLC播放器使用&#xff0c;以及虚幻4 流媒体使用&#xff0c;实现直播效果 1.使用VLC 播放&#xff1a;https://www.vi…

某某客户的一次勒索病毒应急响应

Lockbit勒索病毒应急响应背景1、应急处理排查2、勒索病毒来源分析3、勒索病毒分析4、勒索病毒解密5、主机分析分析6、后续安全加固和改进措施结论背景 美好的周六刚开始&#xff0c;眼睛一睁&#xff0c;领导就发消息&#xff0c;说某客户中了勒索病毒&#xff0c;特别着急&am…

2023年第三届智能机器人与系统国际会议(ISoIRS 2023) | IEEE-CPS独立出版

2023年第三届智能机器人与系统国际会议(ISoIRS 2023) | IEEE-CPS独立出版 会议简介 Brief Introduction 2023年第三届智能机器人与系统国际会议(ISoIRS 2023) 会议时间&#xff1a;2023年5月26日-28日 召开地点&#xff1a;中国长沙 大会官网&#xff1a;www.isoirs.org ISoIRS…

项目打包记录提交id

某天上午正在摸鱼的小邓&#xff0c;突然被领导拉倒一个2年前项目的现场问题沟通群&#xff0c;说是现场数据无法入库&#xff0c;需要排查&#xff0c;奈何不知道版本&#xff0c;无奈的小邓值得用时间记录一个点一个点的从gitlab中查找&#xff0c;为了防止后续提供到现场的版…

基于DSP+FPGA的机载雷达伺服控制系统的硬件设计与开发(一)总体设计

2.1 功能要求及性能指标 2.1.1 功能要求 &#xff08;1&#xff09;具备方位和俯仰两轴运动的能力&#xff1b; &#xff08;2&#xff09;方位轴可实现预置、周扫和扇扫功能&#xff1b; &#xff08;3&#xff09;俯仰轴可实现预置功能。 2.1.2 性能指标 &#xff08;1&#…

江南爱窗帘十大品牌,怎么合理的搭配窗帘配色

窗帘行业圈&#xff1a;窗帘行业内部交流圈&#xff0c;窗帘从业者的交流内部圈。 当阳光照进房间的那一刻&#xff0c; 光线给空间带来了无限的可能。 窗边的帘帐既是美丽的风景 又是可爱的魔术师。 在光影变幻的时空里 让你的生活布满温馨和奇幻。 1.窗帘材质怎么选 窗帘的材…

Voting_Averaging算法预测银行客户流失率

Voting_Averaging算法预测银行客户流失率 描述 为了防止银行的客户流失&#xff0c;通过数据分析&#xff0c;识别并可视化哪些因素导致了客户流失&#xff0c;并通过建立一个预测模型&#xff0c;识别客户是否会流失&#xff0c;流失的概率有多大。以便银行的客户服务部门更…

Qt Quick - 分隔器综述

Qt Quick - 分隔器综述一、概述二、MenuSeparator 控件1. 用法&#xff1a;三、ToolSeparator 控件1. 用法一、概述 Qt Quick Controls 提供了多种分隔符&#xff0c;其实就是分割一下MenuBar和ToolBar里面的内容。 控件功能MenuSeparator将菜单中的一组项目与相邻项目分开To…

高效部署Redis Sentinel模式(哨兵模式),手把手教学

Redis Sentinel模式部署前言一、服务器部署同版本的redis1、换软件源在yum拉取包的时候启用remi源二、修改配置文件1.修改/etc/redis.conf2.配置/etc/redis/sentinel.conf三、启动redis服务1、启动服务2、连接redis3、检查redis前言 这里就不过多的解释高可用的好处了&#xf…

一文吃透Http协议

Http 协议 1. 初始 Http Http 协议 , 是应用层最为广泛使用的协议 , Http 就是浏览器和服务器之间的桥梁. Http 是基于 TCP 协议实现的 , 通常我们输入搜索框中的网址 (URL) , 浏览器就会根据这个 URL 构造出一个 Http 请求 , 发送给服务器. 服务器就会返回一个 Http 响应(包…

计组2.4——加法器的设计

计组&#xff1a;2.4算术逻辑单元异或门实现奇偶校验的原理串行加法器&&并行加法器并行加法器的优化算术逻辑单元 控制信号&#xff1a; 当M0时表示算术运算 当M1时表示逻辑运算 S0~ S3表示做什么运算&#xff0c;因此ALU可以表示16种算数运算和16种逻辑运算 Ai,Bi代表…

JVM 垃圾收集器详解

一、垃圾收集器 如果说收集算法是内存回收的方法论&#xff0c;那垃圾收集器就是内存回收的实践者。《Java虚拟机规范》中对垃圾收集器应该如何实现并没有做出任何规定&#xff0c;因此不同的厂商、不同版本的虚拟机所包含的垃圾收集器都可能会有很大差别&#xff0c;不同的虚…

Java中Cookie的属性介绍

Name和Value Name和Value是一个键值对。 Name是Cookie的名称&#xff0c;Cookie一旦创建&#xff0c;名称便不可更改&#xff0c;一般名称不区分大小写&#xff1b; Value是该名称对应的Cookie的值&#xff0c;如果值为Unicode字符&#xff0c;需要为字符编码。 如果值为二进制…

优思学院|质量大师的那些名言(一)【质量是免费的】

名言是一种短小精悍、言简意赅的语言表达方式&#xff0c;它们通常包含着深刻的哲理和智慧&#xff0c;可以为我们提供指导和启示。 优思学院会在这个《质量大师的那些名言》系列中让大家透过那些名言&#xff0c;用最简单、直接&#xff0c;和深刻的方法来学习质量和六西格玛…