寿光市住房和建设局网站,贵阳网站制作费用,网站开发 协作平台,阿里巴巴运营思路小波变换是一种信号处理技术#xff0c;通过在时间-频率域中使用基于小波的函数进行信号分析。小波变换在处理非平稳信号和图像时特别有用#xff0c;可以将信号分解为不同频率的成分。它在数据压缩、去噪、特征提取等领域有广泛应用。
MATLAB中提供了用于二维离散小波变换的…小波变换是一种信号处理技术通过在时间-频率域中使用基于小波的函数进行信号分析。小波变换在处理非平稳信号和图像时特别有用可以将信号分解为不同频率的成分。它在数据压缩、去噪、特征提取等领域有广泛应用。
MATLAB中提供了用于二维离散小波变换的函数 dwt2可以将图像进行小波分解。该函数执行的是多级离散小波变换将图像分解为多个尺度的近似系数和细节系数。具体来说dwt2函数的语法如下
[C, S] dwt2(X, wavelet)其中
X 是输入的二维图像wavelet 是指定的小波基函数比如 haar、db1 等C 是包含小波变换系数的矩阵S 是描述小波变换结果各层的结构体。
可以通过调用dwt2函数来执行二维离散小波变换得到图像的小波分解系数和结构信息。然后你可以进一步对获得的系数进行处理比如重构原始图像、进行图像压缩、图像增强等。
需要注意的是小波变换是一种复杂的信号处理技术需要一定的理论基础和实践经验来使用和理解。
MATLAB实现过程
% 读取lena图像
originalImage imread(lenagray.bmp);% 如果图像是RGB图转换为灰度图
if size(originalImage, 3) 3originalImage rgb2gray(originalImage);
end% 小波变换这里使用了Haar小波和单级分解
[LL, LH, HL, HH] dwt2(originalImage, haar);% 将系数转化为可显示的格式
LL_visual mat2gray(LL);
LH_visual mat2gray(LH);
HL_visual mat2gray(HL);
HH_visual mat2gray(HH);figure,imshow(originalImage);figure,
% 显示变换后的子带
subplot(2,2,1), imshow(LL_visual), title(LL (Approximation));
subplot(2,2,2), imshow(LH_visual), title(LH (Horizontal Detail));
subplot(2,2,3), imshow(HL_visual), title(HL (Vertical Detail));
subplot(2,2,4), imshow(HH_visual), title(HH (Diagonal Detail));% 根据LL,LH,HL,HH的大小对它们进行填充
% LL_padded padarray(LL,[size(LH, 1) size(HL, 2)],post);% 组合各子带以形成矩形图像
waveletImage [LL, LH; HL, HH];% 显示组合后的图像
figure, imshow(mat2gray(waveletImage)), title(Combined Wavelet Components);
输出结果
分别显示了
原始图像各个子带拼接子带 多次分解演示 clc
clearvars% 读取lena图像
X imread(lenagray.bmp);% 小波变换这里使用了Haar小波和单级分解
[LL1, LH1, HL1, HH1] dwt2(X, haar);
[LL2, LH2, HL2, HH2] dwt2(LL1, haar);
[LL3, LH3, HL3, HH3] dwt2(LL2, haar);
[LL4, LH4, HL4, HH4] dwt2(LL3, haar);LL3 [LL4, LH4; HL4, HH4];
LL2[LL3, LH3; HL3, HH3];
LL1[LL2, LH2; HL2, HH2];
X1[LL1, LH1; HL1, HH1];
figure,imshow(X1); 多次拆分合并
clc
clearvars% 注:请确保lenagray.bmp文件在当前文件夹中或者用你的文件路径替换它
X imread(lenagray.bmp);
figure;
imshow(X), title(Original Image);
% 小波分解使用了Haar小波4级分解
[LL1, LH1, HL1, HH1] dwt2(X, haar);
[LL2, LH2, HL2, HH2] dwt2(LL1, haar);
[LL3, LH3, HL3, HH3] dwt2(LL2, haar);
[LL4, LH4, HL4, HH4] dwt2(LL3, haar);LL3 [LL4, LH4; HL4, HH4];
LL2[LL3, LH3; HL3, HH3];
LL1[LL2, LH2; HL2, HH2];
X1[LL1, LH1; HL1, HH1];
figure,imshow(X1); title(dwt2 Image);
% 从X1重构图像你的X1已经提供了需要的所有细节系数
% 执行逆小波变换
[LL1, LH1, HL1, HH1] partitionMatrix(X1);
[LL2, LH2, HL2, HH2] partitionMatrix(LL1);
[LL3, LH3, HL3, HH3] partitionMatrix(LL2);
[LL4, LH4, HL4, HH4] partitionMatrix(LL3);% 第四级逆变换
LL3 idwt2(LL4, LH4, HL4, HH4, haar);% 第三级逆变换
LL2 idwt2(LL3, LH3, HL3, HH3, haar);% 第二级逆变换
LL1 idwt2(LL2, LH2, HL2, HH2, haar);% 第一级逆变换得到原始图像
X_reconstructed idwt2(LL1, LH1, HL1, HH1, haar);% 显示原始图像和重建图像
figure,imshow(uint8(X_reconstructed)), title(Reconstructed Image);function [X1, X2, X3, X4] partitionMatrix(X)
% 获取矩阵X的大小
[m, n] size(X);% 将矩阵X划分为四等份
X1 X(1:m/2, 1:n/2); % 左上角子矩阵
X2 X(1:m/2, n/21:end); % 右上角子矩阵
X3 X(m/21:end, 1:n/2); % 左下角子矩阵
X4 X(m/21:end, n/21:end); % 右下角子矩阵
end
输出结果
相关博文
理解并实现OpenCV中的图像平滑技术
OpenCV中的边缘检测技术及实现
OpenCV识别人脸案例实战
入门OpenCV图像阈值处理
我的图书
下面两本书欢迎大家参考学习。
OpenCV轻松入门
李立宗OpenCV轻松入门电子工业出版社2023 本书基于面向 Python 的 OpenCV(OpenCV for Python)介绍了图像处理的方方面面。本书以 OpenCV 官方文档的知识脉络为主线并对细节进行补充和说明。书中不仅介绍了 OpenCV 函数的使用方法还介绍了函数实现的算法原理。
在介绍 OpenCV 函数的使用方法时提供了大量的程序示例并以循序渐进的方式展开。首先直观地展示函数在易于观察的小数组上的使用方法、处理过程、运行结果方便读者更深入地理解函数的原理、使用方法、运行机制、处理结果。在此基础上进一步介绍如何更好地使用函数处理图像。在介绍具体的算法原理时本书尽量使用通俗易懂的语言和贴近生活的实例来说明问题避免使用过多复杂抽象的公式。
本书适合计算机视觉领域的初学者阅读包括在校学生、教师、专业技术人员、图像处理爱好者。 本书第1版出版后深受广大读者朋友的喜爱被很多高校选为教材目前已经累计重印9次。为了更好地方便大家学习对本书进行了修订。
计算机视觉40例
李立宗计算机视觉40例电子工业出版社2022 近年来我深耕计算机视觉领域的课程研发工作在该领域尤其是OpenCV-Python方面积累了一点儿经验。因此我经常会收到该领域相关知识点的咨询内容涵盖图像处理的基础知识、OpenCV工具的使用、深度学习的具体应用等多个方面。为了更好地把所积累的知识以图文的形式分享给大家我将该领域内的知识点进行了系统的整理编写了本书。希望本书的内容能够对大家在计算机视觉方向的学习有所帮助。 本书以OpenCV-Pythonthe Python API for OpenCV为工具以案例为载体系统介绍了计算机视觉从入门到深度学习的相关知识点。 本书从计算机视觉基础、经典案例、机器学习、深度学习、人脸识别应用等五个方面对计算机视觉的相关知识点做了全面、系统、深入的介绍。书中共介绍了40余个经典的计算机视觉案例其中既有字符识别、信息加密、指纹识别、车牌识别、次品检测等计算机视觉的经典案例也包含图像分类、目标检测、语义分割、实例分割、风格迁移、姿势识别等基于深度学习的计算机视觉案例还包括表情识别、驾驶员疲劳监测、易容术、识别年龄和性别等针对人脸的应用案例。 在介绍具体的算法原理时本书尽量使用通俗易懂的语言和贴近生活的示例来说明问题避免使用复杂抽象的公式来介绍。 本书适合计算机视觉领域的初学者阅读适于在校学生、教师、专业技术人员、图像处理爱好者使用。