【图像处理】基于离散余弦变换和小波变换的图像压缩(matlab实现)

本文介绍了离散余弦变换(DCT)在图像压缩中的原理,涉及8x8像素块的处理、DCT变换的应用以及如何通过保留重要系数实现压缩。还展示了Matlab代码示例,包括读取原始图像、基于DCT的压缩操作和结果可视化。

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

DCT是一种将图像转换为频域表示的方法,常被用于图像和音频压缩。在DCT压缩中,图像被分成小的块,通常是8x8像素的块。然后,对每个块应用DCT变换,将其转换为频域表示。由于自然图像中的信息通常在低频部分集中,DCT变换将图像的能量主要集中在较低频的系数上。通过保留较大的DCT系数,可以保留主要的图像信息,而舍弃较小的系数则可以实现压缩。量化和熵编码等技术也通常与DCT一起使用,以进一步提高压缩效率。

📚2 运行结果

主函数部分代码:

clc; clear;
%% Read the original image
fig_original = double(imread('data/lenna.tif')) / 255;
imwrite(fig_original, 'data/lenna.png');

%% Image compression based on DCT
% The original image
figure('Name', 'Image compression based on DCT');
subplot(2, 3, 1);
imshow(fig_original, []);

% Zonal mask
zonal_mask = [8:-1:1]' * [8:-1:1] > 30;
zonal_output = dct(fig_original, zonal_mask);
subplot(2, 3, 2);
imshow(zonal_output, []);
imwrite(zonal_output, 'data/zonal_output.png');
zonal_difference = difference(fig_original, zonal_output);
subplot(2, 3, 5);
imshow(zonal_difference, []);
imwrite(zonal_difference, 'data/zonal_difference.png');

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]Tello-Cifuentes L ,Marulanda J ,Thomson P . Detection and classification of pavement damages using wavelet scattering transform, fractal dimension by box-counting method and machine learning algorithms[J]. Road Materials and Pavement Design,2024,25(3).

🌈4 Matlab代码实现

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值