经典小波变换应用——图像压缩到指定大小【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…



相关文章
|
1月前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
1月前
|
机器学习/深度学习 并行计算 算法
霍夫变换椭圆检测(matlab仿真与图像处理系列第2期)
霍夫变换椭圆检测(matlab仿真与图像处理系列第2期)
118 0
二阶锥松弛在配电网最优潮流计算中的应用matlab
二阶锥松弛在配电网最优潮流计算中的应用matlab
|
9天前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
25天前
|
算法 数据安全/隐私保护 C++
基于二维CS-SCHT变换和扩频方法的彩色图像水印嵌入和提取算法matlab仿真
该内容是关于一个图像水印算法的描述。在MATLAB2022a中运行,算法包括水印的嵌入和提取。首先,RGB图像转换为YUV格式,然后水印通过特定规则嵌入到Y分量中,并经过Arnold置乱增强安全性。水印提取时,经过逆过程恢复,使用了二维CS-SCHT变换和噪声对比度(NC)计算来评估水印的鲁棒性。代码中展示了从RGB到YUV的转换、水印嵌入、JPEG压缩攻击模拟以及水印提取的步骤。
|
1月前
|
机器学习/深度学习 编解码 监控
探索MATLAB在计算机视觉与深度学习领域的实战应用
探索MATLAB在计算机视觉与深度学习领域的实战应用
42 7
|
24天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于DCT变换和位平面分解的数字水印嵌入提取算法matlab仿真
这是一个关于数字水印算法的摘要:使用MATLAB2022a实现,结合DCT和位平面分解技术。算法先通过DCT变换将图像转至频域,随后利用位平面分解嵌入水印,确保在图像处理后仍能提取。核心程序包括水印嵌入和提取,以及性能分析部分,通过PSNR和NC指标评估水印在不同噪声条件下的鲁棒性。
|
1月前
|
SQL 移动开发 算法
MATLAB改进模糊C均值聚类FCM在电子商务信用评价应用:分析淘宝网店铺数据|数据分享
MATLAB改进模糊C均值聚类FCM在电子商务信用评价应用:分析淘宝网店铺数据|数据分享
|
1月前
|
算法 数据安全/隐私保护 计算机视觉
基于DCT变换的彩色图像双重水印嵌入和提取算法matlab仿真
**算法摘要:** - 图形展示:展示灰度与彩色图像水印应用,主辅水印嵌入。 - 软件环境:MATLAB 2022a。 - 算法原理:双重水印,转换至YCbCr/YIQ,仅影响亮度;图像分割为M×N块,DCT变换后嵌入水印。 - 流程概览:两步水印嵌入,每步对应不同图示表示。 - 核心代码未提供。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
79 2

热门文章

最新文章