本章难度大(看不太懂),没有什么详细记录,大家还得自行查阅其他相关博客视频等。
小波变换基于小型波(傅里叶变换以正弦函数为基函数).
FT的结果完全丢失了时间信息, 而小波变换的意义就在于判断什么时间(间隔)出现什么样的频谱成分.
辅助材料: THE WAVELET TUTORIAL (unr.edu)
辅助视频: Wavelets: a mathematical microscope (youtube.com)
第三版教材中图片下载地址: book images downloads
vs2019配置opencv可以查看:VS2019 & Opencv4.5.4配置教程
前情回顾:
数字图像处理第三章 灰度变换和空间滤波 学习笔记
数字图像处理第四章 频率域滤波 学习笔记
数字图像处理第五章 图像复原和重建(内容较简单,就没有详细记录笔记)
数字图像处理第六章 彩色图像处理 学习笔记
后续剧情:
数字图像处理 第九章 形态学图像处理 学习笔记
数字图像处理 第十章 图像分割 学习笔记
数字图像处理 第11章 标识和描述 学习笔记
步骤1: 计算第j-1
级近似. 第j
级通过滤波并以2为因子进行下采样.
步骤2: 通过对步骤1结果进行上采样, 得到第j
级预测值.
步骤3: 汁算步骤 2 的预测图像和步骤 1 的输入之间的差. 把得到的结果放在预测残差金字塔的第j
级。
void test04(string path) {
Mat img = imread(path);
if (img.empty()) {
cout << "Error: unable to load the image\n";
return;
}
//构建图像金字塔
vector<Mat> pyramid;
pyramid.push_back(img.clone());
for(int i = 0; i < 4; i++) {
Mat blurred;
GaussianBlur(pyramid.back(), blurred, Size(5, 5), 0, 0);
Mat downsampled;
pyrDown(blurred, downsampled);
pyramid.push_back(downsampled);
}
//构建残差金字塔
vector<Mat> residualPyramid;
for (int i = 1; i < pyramid.size(); i++) {
Mat upsampled;
pyrUp(pyramid[i], upsampled, Size(pyramid[i - 1].cols, pyramid[i - 1].rows));
residualPyramid.push_back(pyramid[i - 1] - upsampled);
}
for (int i = 0; i < pyramid.size() - 1; i++) {
imshow("level_" + to_string(i), pyramid[i]);
imshow("residual" + to_string(i), residualPyramid[i]);
}
waitKey(0);
}
多分辨率分析(MRA)中, 尺度函数被建立成一个函数或一幅图像的一系列近似值, 每个近似与其最近邻近似在分辨率方面都用因子2来区分.
小波函数是小波变换的基础,以下是整个小波函数家族
小波函数的满足条件:
积分为 0 , ∫ − ∞ + ∞ ψ ( t ) d t = 0 积分为0, \int_{-\infty}^{+\infty}\psi (t)dt =0 积分为0,∫−∞+∞ψ(t)dt=0
能量有限 , ∫ − ∞ + ∞ ∣ ψ ( t ) ∣ 2 d t < ∞ 能量有限, \int_{-\infty}^{+\infty}|\psi (t)|^2 dt < \infty 能量有限,∫−∞+∞∣ψ(t)∣2dt<∞
将小波函数进行平移缩放
ψ a , b = ψ ( t − b a ) \psi_{a,b}= \psi(\frac{t-b}{a}) ψa,b=ψ(at−b)
其中, b表示平移因子, a表示缩放因子
某一小波函数对于信号y(t)
具有的贡献:
T ( a , b ) = ∫ − ∞ + ∞ y ( t ) ⋅ ψ a , b ( t ) d t T(a, b)=\int_{-\infty}^{+\infty}y(t)\cdot \psi _{a,b}(t)dt T(a,b)=∫−∞+∞y(t)⋅ψa,b(t)dt