经典小波变换应用——图像压缩到指定大小【MATLAB】

简介: 经典小波变换应用——图像压缩到指定大小【MATLAB】

例如在需要用到指定大小的图像或者需要对指定文件夹下图像批量进行压缩大小,可以使用小波变换进行压缩。


第一步:三通道图像处理


1.1.清除变量


1.2.获取图像


1.3.先判断是否为三通道,不是的话取0,是的话对RGB三通道读取数据


1.4.小波分解(三通道分解)




第二步:设定阈值


2.1.设定指定大小的阈值


2.2.三通道阈值设值\




第三步:重构不同阈值下图像


3.1.对三个通道(RGB)分布进行小波变换


3.2.uint8数据转换


3.3.输出图像


demo:


%软件工具版本为 MATLAB R2019b
%清除变量
clc
clear
close all
%%图像预处理
tic
%%
img=imread('a.jpg');%获取图像
wavename='haar';
level=3;
%三通道图像处理
%先判断是否为三通道,不是的话取0,是的话对RGB三通道读取数据
if ndims(img)==3 %
    imgcolor=1;
    Xr=img(:,:,1);
    Xg=img(:,:,2);
    Xb=img(:,:,3);
else
    imgcolor=0;
end
img=double(img);
%%
%小波分解(三通道分解)
if imgcolor
    [Cr,Sr]=wavedec2(Xr,level,wavename);
    [Cg,Sg]=wavedec2(Xg,level,wavename);
    [Cb,Sb]=wavedec2(Xb,level,wavename);
    C(1,:)=Cr;
    C(2,:)=Cg;
    C(3,:)=Cb;
else
    [C,S]=wavedec2(img,level,wavename);
end
%设置阈值
T=4.5544;%T的值决定了变换后的图像大小
C(abs(C)<=T)=T;
%重构不同阈值下图像
if imgcolor
    Cr=C(1,:);
    Cg=C(2,:);
    Cb=C(3,:);
    Ar=waverec2(Cr,Sr,wavename);
    Ag=waverec2(Cg,Sg,wavename);
    Ab=waverec2(Cb,Sb,wavename);
    A(:,:,1)=uint8(round(Ar));
    A(:,:,2)=uint8(round(Ag));
    A(:,:,3)=uint8(round(Ab));
else
    A=waverec2(C,wavename);
    A=unit8(round(A));
end
A=uint8(A);
imwrite(A,'b.jpg');%重构后的图像
toc

项目地址:github.com/kivenyangmi…



相关文章
|
6月前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
二阶锥松弛在配电网最优潮流计算中的应用matlab
二阶锥松弛在配电网最优潮流计算中的应用matlab
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于NSCT非采样轮廓波变换和CNN网络人脸识别matlab仿真
本项目展示了一种结合非采样轮廓波变换(NSCT)与卷积神经网络(CNN)的人脸识别系统。通过NSCT提取多尺度、多方向特征,并利用CNN的强大分类能力实现高效识别。项目包括ORL人脸库的训练结果对比,提供Matlab 2022a版本下的完整代码及详细中文注释,另有操作步骤视频指导。
|
5月前
|
算法 计算机视觉 异构计算
基于FPGA的图像一维FFT变换IFFT逆变换verilog实现,包含tb测试文件和MATLAB辅助验证
```markdown ## FPGA 仿真与 MATLAB 显示 - 图像处理的 FFT/IFFT FPGA 实现在 Vivado 2019.2 中仿真,结果通过 MATLAB 2022a 展示 - 核心代码片段:`Ddddddddddddddd` - 理论:FPGA 实现的一维 FFT/IFFT,加速数字信号处理,适用于高计算需求的图像应用,如压缩、滤波和识别 ```
|
5月前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
6月前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。
|
4月前
|
算法 安全 数据挖掘
随机数生成方法及其在Matlab中的应用
随机数生成方法及其在Matlab中的应用
|
5月前
|
算法 数据可视化 数据挖掘
MATLAB中常用的数学函数及其应用示例
MATLAB中常用的数学函数及其应用示例
|
6月前
|
机器学习/深度学习 编解码 监控
探索MATLAB在计算机视觉与深度学习领域的实战应用
探索MATLAB在计算机视觉与深度学习领域的实战应用
84 7
|
6月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于DCT变换和位平面分解的数字水印嵌入提取算法matlab仿真
这是一个关于数字水印算法的摘要:使用MATLAB2022a实现,结合DCT和位平面分解技术。算法先通过DCT变换将图像转至频域,随后利用位平面分解嵌入水印,确保在图像处理后仍能提取。核心程序包括水印嵌入和提取,以及性能分析部分,通过PSNR和NC指标评估水印在不同噪声条件下的鲁棒性。

热门文章

最新文章

下一篇
无影云桌面