DIP第7章知识点

news2024/11/25 0:46:25

文章目录

    • 7.3 相关
    • 7.5 基图像
    • 7.6 傅里叶相关变换
      • 7.6.1 离散哈特利变换
      • 7.6.3 离散正弦变换

DIP的其他章节都好复习,唯独就这个第7章小波变换。复习起来十分头大,所以我开始写他的课后题,雾。

7.3 相关

已知两个连续函数 f ( x ) f(x) f(x) g ( x ) g(x) g(x) f f f g g g 的相关(当 f ( x ) ≠ g ( x ) f(x)≠g(x) f(x)=g(x) 时,称为互相关;当 f ( x ) = g ( x ) f(x)=g(x) f(x)=g(x) 时,称为自相关)定义为

f ⋆ g ( Δ x ) = ∫ − ∞ ∞ f ∗ ( x ) g ( x + Δ x ) d x = ⟨ f ( x ) , g ( x + Δ x ) ⟩ f \star g(\Delta x)=\int_{-\infty}^{\infty} f^{*}(x) g(x+\Delta x) \mathrm{d} x=\langle f(x), g(x+\Delta x)\rangle fg(Δx)=f(x)g(x+Δx)dx=f(x),g(x+Δx)⟩

相关有时称为 f f f g g g滑动内积,度量的是 f ( x ) f(x) f(x) g ( x ) g(x) g(x) 的相似性,是它们相对位移 Δ x Δx Δx 的函数。若 Δ x = 0 Δx=0 Δx=0,则有

f ⋆ g ( 0 ) = ⟨ f ( x ) , g ( x ) ⟩ f \star g(0)=\langle f(x), g(x)\rangle fg(0)=f(x),g(x)⟩

基函数 h h h 的能量,在时间-频率平面上集中于点 ( μ t , μ f ) (μ_t, μ_f) (μt,μf) 处。大部分能量,落在面积为 4 σ t σ f 4σ_tσ_f 4σtσf 的一个矩形区域(称为海森堡盒或单元),

σ t 2 σ f 2 ≥ 1 16 π 2 \sigma_{t}^{2} \sigma_{f}^{2} \geq \frac{1}{16 \pi^{2}} σt2σf216π21

因为函数的支撑集定义为函数非零的点的集合,由海森堡测不准原理知,函数在时间和频率上都存在有限支撑集是不可能的。

7.5 基图像

注意:最大频率的DFT、DHT 基图像,出现在 u = 4 u=4 u=4 v = 4 v=4 v=4 时。离散余弦变换、离散正弦变换出现在 u = 7 , v = 7 u=7,v=7 u=7,v=7 时。

7.6 傅里叶相关变换

7.6.1 离散哈特利变换

s ( x , u ) = 1 N cas ⁡ 2 π u x N = 1 N ( cos ⁡ 2 π u x N + sin ⁡ 2 π u x N ) s(x, u)=\frac{1}{\sqrt{N}} \operatorname{cas} \frac{2 \pi u x}{N}=\frac{1}{\sqrt{N}}\left(\cos \frac{2 \pi u x}{N}+\sin \frac{2 \pi u x}{N}\right) s(x,u)=N 1casN2πux=N 1(cosN2πux+sinN2πux)

7.6.3 离散正弦变换

类似于DCT,DST具有与DFT大致相同的频率范围,但频率分辨率是后者的2倍。注意:与DCT和DFT的不同之处,DST没有直流(u=0)分量。

s ( x , u ) = 2 N + 1 sin ⁡ ( x + 1 ) ( u + 1 ) π N + 1 s(x, u)=\sqrt{\frac{2}{N+1}} \sin \frac{(x+1)(u+1) \pi}{N+1} s(x,u)=N+12 sinN+1(x+1)(u+1)π

close all; clear all; clc;
A = dctmtx(8);
B = A';
C = zeros(8, 8, 64);
m = 0;
for i = 1:8
    for j = 1:8
        m = m+1;
        C(:, :, m) = B(:, i)*A(j, :);
    end
end
minvalue = min(min(min(C)));
maxvalue = max(max(max(C)));
figure,
%显示灰度图像的范围,指定为 [low high] 形式的二元素向量。
% imshow 函数将值 low(以及任何小于 low 的值)显示为黑色,并将值 high(以及任何大于 high 的值)显示为白色。
for k = 1:64
    subplot(8, 8, k), imshow(C(:, :, k), [minvalue, maxvalue]);
end

在这里插入图片描述
对于长度为 N = 2 J N=2^J N=2J 的输入序列, FWT: O ( N ) O(N) O(N); FFT: O ( N log ⁡ 2 N ) O(N\log_2N) O(Nlog2N)

为更好地控制时间-频率平面的划分(即得到更小的高频带宽), 必须将 FWT 推广到称为 小波包 的更灵活的分解。这一推广的代价是,计算复杂度:从FWT的 O ( N ) O(N) O(N) 增加到小波包的 O ( N log ⁡ 2 N ) O(N\log_2N) O(Nlog2N),与FFT相同。

7.35 推导公式(7.140)

d j ( k ) = ∑ n h ψ ( n − 2 k ) c j + 1 ( n ) (7.140) d_{j}(k)=\sum_{n} h_{\psi}(n-2 k) c_{j+1}(n)\tag{7.140} dj(k)=nhψ(n2k)cj+1(n)(7.140)

这个公式是快速小波变换中的,大概的含义就是小波空间 W j W_j Wj 中的函数可以由尺度空间 V j + 1 V_{j+1} Vj+1 中的函数来表示。这个是方便理解的,我们可以看书上的这张图。

在这里插入图片描述
根据式(7.135)
d j = ⟨ f ( x ) , ψ j , k ( x ) ⟩ (7.135) d_{j}=\left\langle f(x), \psi_{j, k}(x)\right\rangle\tag{7.135} dj=f(x),ψj,k(x)(7.135)

我们可以得到:

d j ( k ) = ∫ f ( x ) 2 j / 2 ψ ( 2 j x − k ) d x d_{j}(k)=\int f(x) 2^{j / 2} \psi\left(2^{j} x-k\right) d x dj(k)=f(x)2j/2ψ(2jxk)dx

但是这里我们要推导的是细节系数和尺度系数之间的关系,所以需要将 ψ ( 2 j x − k ) \psi\left(2^{j} x-k\right) ψ(2jxk) 替换掉。我们观察到(7.130)就是小波函数关于尺度函数加权和的形式,

ψ ( x ) = ∑ k ∈ Z h ψ ( k ) 2 φ ( 2 x − k ) (7.130) \psi(x)=\sum_{k\in\mathbf{Z}} h_{\psi}(k) \sqrt{2} \varphi(2 x-k)\tag{7.130} ψ(x)=kZhψ(k)2 φ(2xk)(7.130)

ψ ( 2 j x − k ) = ∑ m h ψ ( m − 2 k ) 2 φ ( 2 j + 1 x − m ) \psi\left(2^{j} x-k\right)=\sum_{m} h_{\psi}(m-2 k) \sqrt{2} \varphi\left(2^{j+1} x-m\right) ψ(2jxk)=mhψ(m2k)2 φ(2j+1xm)

其中, m ∈ Z m\in Z mZ,于是我们可以得到

d j ( k ) = ∫ f ( x ) 2 j / 2 [ ∑ m h ψ ( m − 2 k ) 2 φ ( 2 j + 1 x − m ) ] d x d_{j}(k)=\int f(x) 2^{j / 2}\left[\sum_{m} h_{\psi}(m-2 k) \sqrt{2} \varphi\left(2^{j+1} x-m\right)\right] d x dj(k)=f(x)2j/2[mhψ(m2k)2 φ(2j+1xm)]dx

交换积分和求和的次序,可以得到

d j ( k ) = ∑ m h ψ ( m − 2 k ) ∫ f ( x ) 2 ( j + 1 ) / 2 φ ( 2 j + 1 x − m ) d x = ∑ m h ψ ( m − 2 k ) c j + 1 ( m ) \begin{aligned} d_{j}(k)&=\sum_{m} h_{\psi}(m-2 k) \int f(x) 2^{(j+1) / 2} \varphi\left(2^{j+1} x-m\right) d x\\ &=\sum_{m} h_{\psi}(m-2 k) c_{j+1}(m) \end{aligned} dj(k)=mhψ(m2k)f(x)2(j+1)/2φ(2j+1xm)dx=mhψ(m2k)cj+1(m)

clc; clear all; close all; 
f=imread('4.一幅512×512的图像.tif'); 
f=im2double(f); 
[cA,cH,cV,cD]=dwt2(f, 'haar'); 
cA=mat2gray(cA); 
cH=mat2gray(cH); 
cV=mat2gray(cV); 
cD=mat2gray(cD); 
w=[cA,cH;cV,cD];
figure; imshow(w); 

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一篇博客教会你怎么使用Docker安装Redis

文章目录 1、搜索镜像2、拉取镜像3、下载配置文件4、修改配置文件5、启动容器 今天我们学习使用 Docker 安装 Redis。 1、搜索镜像 docker search redis2、拉取镜像 docker pull redis3、下载配置文件 wget http://download.redis.io/redis-stable/redis.conf下载的配置文件…

云原生Docker容器管理

docker容器相当于一个进程,性能接近于原生,几乎没有损耗; docker容器在单台主机上支持的数量成百上千; 容器与容器之间相互隔离; 镜像是创建容器的基础,可以理解镜像为一个压缩包 docker容器的管理 容器…

彩票中奖率的真相:用 JavaScript 看透彩票背后的随机算法

原本这篇文章是打算叫「假如我是彩票系统开发者」,但细想一下,如果在文章中引用太多的 JavaScript 的话,反而不是那么纯粹,毕竟也只是我的一厢情愿,彩票开发也不全如本文所讲,有所误导的话便也是得不偿失了…

理解 Java 关键字 final

原文链接 理解 Java 关键字 final final可以用来干什么 final是Java中非常常见的一个关键字,可以说每天都在使用它,虽然常见,但却也不见得都那么显而易见,今天就来研究一下final,以加深对它的理解和更合理的运用。 修…

gitstack使用教程

一、下载及安装 下载地址:https://gitstack.com/download/?spma2c4e.10696291.0.0.6d4c19a40qOauc 支持操作系统列表 本文基于2.3.12版本 下载完成后安装,默认安装路径为:c:\GitStack,安装过程中,gitstack服务会启…

医学图像分割 nnUNetV2 分割自定义2d数据集

文章目录 1 环境安装(Pytorch)1.1 安装conda1.1 安装pytorch1.3 安装nnUNet1.4 安装隐藏层(可选) 2 配置自定义数据集2.1 数据集格式2.2 创建需要目录2.3 数据格式转换2.3.1 修改路径与数据集名称2.3.2 修改训练集与测试集2.3.3 修改掩码所在的文件夹&am…

python基础----05-----函数的多返回值、函数的多种参数使用形式、函数作为参数传递、lambda匿名函数

一 函数的多返回值 if __name__ __main__:# 演示使用多个变量,接收多个返回值def test_return ():return 1,hello,Truex,y,z test_return()print(x)print(y)print(z)1helloTrue二 函数的多种参数使用形式 分为以下四种。 2.1 位置参数 位置参数调用函数时根据…

卡尔曼滤波与组合导航原理(五)序贯Kalman滤波

量测维数很高,而且能写成很多分量,每一个分量可以看成一个小量测,可以序贯进行量测更新 优点是:计算快,数字稳定性更好,我们知道矩阵求逆是和维数的三次方成正比,分成小矩阵求逆快(都…

自学大语言模型之Bert和GPT的区别

Bert和GPT的区别 起源 2018 年,Google 首次推出 BERT(Bidirectional Encoder Representations from Transformers)。该模型是在大量文本语料库上结合无监督和监督学习进行训练的。 BERT 的目标是创建一种语言模型,可以理解句子中…

(Day1)配置云开发提供的模板

创建云开发项目 打开微信开发者工具;点击“项目”->“新建项目”;输入项目名称和选择项目所要保存的目录;输入自己的AppID; AppID的获取,需要登陆微信公众平台,并点击“开发管理”->"开发设置…

凸优化系列——凸函数

1.凸函数的定义 凸函数直观上来说,就是两点之间的函数值小于两点连线的函数值 常见凸函数 线性函数既是凸函数,也是凹函数 对于二次函数,如果Q矩阵是半正定矩阵,那么它的二阶导为Q为半正定矩阵,根据凸性判定的二阶条…

SpringCloud微服务架构 --- 高级篇

一、初识Sentinel 1.1、雪崩问题及解决方案 1.1.1、雪崩问题 微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。 1.1.2、解决雪崩问题的常见方式有四种 1.1.2.1、超时处理 设定超时时间,请求超过一定时间…

Swagger原理

最近在基于Swagger进行二次开发, 来对项目的接口进行管理,功能实现了,但是不清楚swagger的工作原理,为了后续能更好利用Swagger来管理接口,而且能借鉴Swagger的原理,将项目中其他信息可视化展示&#xff0c…

什么是测试驱动开发?测试驱动开发有什么优点?

目录 前言 什么是TDD或测试驱动开发? 什么是软件单元测试? 什么是TDD? 测试驱动开发的好处 最后的想法 前言 测试是任何软件开发项目中最重要的步骤之一。如果跳过此过程,则结果可能是灾难性的-对项目和公司而言。但是什么时…

K8s in Action 阅读笔记——【11】Understanding Kubernetes internals

K8s in Action 阅读笔记——【11】Understanding Kubernetes internals 11.1 Understanding the architecture Kubernetes集群分为两个部分: k8s控制平面工作节点 控制平面的组件 构成控制平面的组件有: etcd:etcd是一个分布式的持久化键…

javascrip基础二十八:说说函数节流和防抖?有什么区别?如何实现?

一、是什么 本质上是优化高频率执行代码的一种手段 如:浏览器的 resize、scroll、keypress、mousemove 等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能 为了优化体验,需要对这类事…

类与对象知识总结+构造函数和析构函数 C++程序设计与算法笔记总结(二) 北京大学 郭炜

类和对象 结构化程序设计 C语言使用结构化程序设计: 程序 数据结构 算法 程序由全局变量以及众多相互调用的函数组成。 算法以函数的形式实现,用于对数据结构进行操作。 结构化程序设计的不足: 结构化程序设计中,函数和其所…

《嵌入式系统》知识总结11:STM32串口

串行通信vs并行通信 • 并行:使用8根数据线一次传送一个字节(或使用16根数据线一次传送2个字节,...) • 串行:使用少量数据信号线(8根以下),将数据逐位分时传送 • 并行vs串行&…

路径规划算法:基于秃鹰优化的路径规划算法- 附代码

路径规划算法:基于秃鹰优化的路径规划算法- 附代码 文章目录 路径规划算法:基于秃鹰优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法秃鹰…

【三维编辑】Removing Objects From Neural Radiance Fields论文解读

题目:Removing Objects From NeRF 从神经辐射场中移除对象 论文:https://arxiv.org/abs/2212.11966 作者:Silvan Weder,Guillermo Niantic, ETH Zurich, University College London, nianticlabs.github.ionerf-object-removal 文章目录 摘要一、前言二、…