×

wavedec2函数详解 函数

wavedec2函数详解(matlab压缩图片大小-matlab如何将图像缩放到指定像素大小的函数)

admin admin 发表于2024-02-15 18:33:56 浏览25 评论0

抢沙发发表评论

大家好,如果您还对wavedec2函数详解不太了解,没有关系,今天就由本站为大家分享wavedec2函数详解的知识,包括matlab压缩图片大小-matlab如何将图像缩放到指定像素大小的函数的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

matlab压缩图片大小-matlab如何将图像缩放到指定像素大小的函数

怎么用matlab把压缩成tiff

1.用matlab实现图像压缩时,如何将图片仿真

图像压缩是当今信息时代迫切需求的一门图像处理技术,它极大的减少了图像的数据量,为图像的存储,传输提供了方便。

小波变换,是一种广泛用于图像压缩的方法。它能让图像按不同的分辨率分析。

根据Mallat算法的思想,图像能分解成一个轮廓信号(低频子图)和水平,垂直,对角线三个方向上的细节信号(高频子图)。而轮廓信号又可以进一步分解。

而图像的主要能量部分是低频部分,而且人眼视觉系统对低频部分更为敏感,所以可以对低频部分采用较低压缩比;对高频部分采用较大压缩比来进行压缩。本文提出的是一种结合小波变换,DCT变换和矢量量化的压缩方法。

根据人眼的视觉特性,首先对图像进行小波分解,然后,对低频分量进行压缩比不大的DCT变换;对不同方向不同分辨率的高频分量进行不同码字大小的矢量量化编码,然后对反变换和解码后的系数进行小波重构。矢量量化过程中的码书设计采用的是LBG算法。

这样,根据对图像质量的不同要求,我们可以改变小波分解的层数,来得到不同压缩比的图像。本篇论文只对小波分解一层和两层后压缩进行了仿真和分析,表明该方案结合了各种压缩方法的优点,在满足图像质量的同时能得到较大的压缩比。

目前,在包装装潢设计中常用的图形处理软件有Pho-toshop,CorelDraw,AutoCAD等。但是这些软件中很少涉及到对图像进行压缩处理,以满足图像进行传输和储存的需要。

基于这一点考虑,在此尝试着用MATLAB编程来处理包装装潢图像的压缩,实现包装与计算机的紧密结合。1MATLABMATLAB是MathWorks公司推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图像显示于一体,它附带的小波分析工具箱功能强大,可以完成小波分析的绝大部分工作。

MATLAB工具箱的出现避免了程序设计中的重复性劳动,缩短了开发周期,降低了成本,因而受到工科院校师生和研究人员的青睐。在介绍利用MATLAB小波工具压缩图像的文献中,总是将真彩色RGB图像转换为灰度级索引图像进行处理.经过这种处理以后,图像的存储数据能得到一定的压缩,但由压缩后的数据难以恢复成理想的彩色图像。

文中用MATLAB中有关函数处理图像压缩,而且由压缩后的数据可以还原出图像.实验结果表明,还原出的图像效果是理想的。文中主要以lena图像的处理为例,对它进行二进小波多层分解后,将低频和高频近似的系数矩阵作相应的处理,来研究用MATLAB中的小波工具箱压缩图像的方法。

2图像压缩方法在实际应用中,首先需要从图像文件中读取图像数据.MATLAB使用imreed()函数完这一任务.例如,在电脑D盘中有一彩色图像文件,则可由下述语句读取:X=imread(′D:\picl.′);MATLAB图像处理工具箱支持4种基本图像类型:索引图像、灰度图像、二进制图像和RGB图像.MATLAB直接从图像文件中读取的图像为RGB图像.它存储在三维数组中。这个三维数组有3个面,依次对应子红(Red)、绿(Green)、蓝(Blue)3种颜色,而面中的数据则分别是这3种颜色的强度值,面中的元素对应于图像中的像素点。

索引图像数据包括图像矩阵X与颜色图数组map,其中颜色图map是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵X包含一个值,这个值就是颜色图数组map中的索引。

颜色图map为m*3双精度矩阵,各行分别指定红、绿、蓝(R、G、B)单色值,map=〔RGB〕,R、C、B为值域为〔0,1〕的实数值,m为索引图像包含的像素个数.然后可根据情况采用不同的小波函数,进行索引图像的分解压缩。这里对上面产生的索引图像X用dbl小波进行2层分解。

〔c,l〕=wavedec2(X,2,′dbl′)。在这里,一个索引图像作小波分解后,可得到一系列不同分辨率的子图像,不同分辨率的子图像对应的频率是不相同的.高分辨率(即高频细节)子图像上大部分点的数值接近于0,越是高频这种现象越明显.对一个图像来说,表现一个图像最主要的部分是低频(即近似)部分。

多层小波分解的所有成分系数均保存在向量c中,低频近似与高频细节的系数需从向量C中提取。MATLAB分别使用appcoet2()和detcoef2()函数来完成这一工作。

这种方法是对低频和高频部分进行处理,因而提取低频和高频近似系数。cAl=appcoef2(c,1,′dbl,′1);cH1=detcoef2(′h′,c,1,1);cDl=detcoef2(′d′,c,l,1);cVl=detcoef2(′v′,c,l,1)。

matlab实现离散余弦变换压缩(JPEG压缩原理)JPEG图像压缩算法:输入图像被分成8*8或16*16的小块,然后对每一小块进行二维DCT(离散余弦变换)变换,变换后的系数量化、编码并传输;JPEG文件解码量化了的DCT系数,对每一块计算二维逆DCT变换,最后把结果块拼接成一个完整的图像。在DCT变换后舍弃那些不严重影响图像重构的接近0的系数。

DCT变换的特点是变换后图像大部分能量集中在左上角,因为左上放映原图像低频部分数据,右下反映原图像高频部分数据。而图像的能量通常集中在低频部分。

实例程序:functionJpegI=imread(’D:\MATLAB7\toolbox\images\imdemos\’);%该图片在安装matlab的目录中找,原图为灰度图象。

2.使用MATLAB图像压缩怎么做

I=imread(’’);%输入图像

I=im2double(I);%数据类型转换

T=dctmtx(8);%计算二维离散DCT矩阵

dct=@(x)T*x*T’;%设置函数句柄

B=blkproc(I,,dct);%图像块处理

mask=[11110000%掩膜

11100000

11000000

10000000

00000000

00000000

00000000

00000000];

B2=blkproc(B,,@(x)mask.*x);%图像块处理

invdct=@(x)T’*x*T;%设置函数句柄

I2=blkproc(B2,,invdct);%图像块处理

imshow(I),figure,imshow(I2)%显示原始图像和压缩重构图像

3.用matlab把11张tif图片做成一个连续动画

使用如下代码方式可以达到你想要的效果。

clear;

clc;

fori=2:50

c=strcat(’a’,num2str(i));%这里可以根据自己图片名字儿作相应的修改

c=strcat(c,’.bmp’);

I=imread(c);

%I=rgb2gray(I)

figure(1);

imshow(I);

end

图片的保存方式如:,这样可以实现你的汽车动画。如果想要使用你的汽车图片做的话,请把汽车图片发给我,我帮你看看。

如何用MATLAB进行图像压缩

I=imread(’’);%输入图像

I=im2double(I);%数据类型转换

T=dctmtx(8);%计算二维离散DCT矩阵

dct=@(x)T*x*T’;%设置函数句柄

B=blkproc(I,,dct);%图像块处理

mask=[11110000%掩膜

11100000

11000000

10000000

00000000

00000000

00000000

00000000];

B2=blkproc(B,,@(x)mask.*x);%图像块处理

invdct=@(x)T’*x*T;%设置函数句柄

I2=blkproc(B2,,invdct);%图像块处理

imshow(I),figure,imshow(I2)%显示原始图像和压缩重构图像

matlab如何将图像缩放到指定像素大小的函数

1、首先打开电脑,然后在电脑中找到并打开matlab软件主界面,如图所示。

2、然后在器界面下,找到并单击运行程序,如图所示。

3、点击运行程序后,绘制一元

函数图像

,如图所示。

4、然后程序,绘制一元多次函数,效果如图所示。

5、最后根据自己需要进行程序,这里绘制

分段函数

,效果如图所示,就完成了。

matlab 小波

彩色图像是3维矩阵,二维小波当然会出错,每一层分开处理即可下面是例子:x=imread(’liftingbody.png’);imshow(x);%显示原图=wavedec2(double(x),2,’db1’);%分解y=waverec2(c,s,’db1’);%重构figure;imshow(uint8(y))%显示

matlab wavedec和wavedec2的区别

使用小波’wname’对信号X进行单层分解,求得的近似系数存放在数组cA中,细节系数存放在数组cD中 =dwt(X,’wname’)中返回的cA,cD分别存放是信号的近似和细节 =wavedec(X,N,’wname’) 利用小波’wname’对信号X进行多层分解 A=appcoef(C,L,’wname’,N) 利用小波’wname’从分解系数中提取第N层近似系数 ,L存放是近似和各阶细节系数对应的长度 DWT2是二维单尺度小波变换,其可以通过指定小波或者分解滤波器进行二维单尺度小波分解 DWT2的一种语法格式是=dwt2(X,’wname’) WAVEDEC2是二维多尺度小波分解 WAVEDEC2的语法格式是=wavedec2(X,N,’wname’),其中N为大于1的正整数 也就是说DWT2只能对某个输入矩阵X进行一层分解,而WAVEDEC2可以对输入矩阵X进行N层分解

matlab图像小波分解,dwt2和wavedec2有什么区别

dwt2是单一尺度DWT,只能分解一层,wavedec2是多尺度DWT,可以分解多层。在matlab中的wavedec2函数是调用dwt2函数实现的,就是将dwt2分解的一层结果再用一次dwt2分解就得到了第二层的分解结果,以此类推得到wavedec2各层的分解结果。所以对于实际问题的处理通常使用wavedec2函数,dwt2函数可以认为只是作为wavedec2函数的子函数,其应用地并不多。

怎么使用matlab的wavelet直接对图形进行小波分解

clear;

clc

load tire ;

% 用小波函数db1对信号进行2尺度分解

 = wavedec2(X,2,’db1’);

sizex = size(X)

sizec = size(c)

val_s = s 

% 提取尺度2的所有方向的高频系数

 = detcoef2(’all’,c,s,2); 

sizecd2 = size(chd2)

% 提取尺度1的所有方向的高频系数 

 = detcoef2(’all’,c,s,1); 

sizecd1 = size(chd1)

% 提取尺度2的低频系数

ca2 = appcoef2(c,s,’db1’,2); 

sizeca2 = size(ca2)

% 提取尺度1的低频系数

ca1 = appcoef2(c,s,’db1’,1); 

sizeca1 = size(ca1)

nbc = size(map,1);

colormap(pink(nbc));

figure(1);

subplot(221);image(wcodemat(X,nbc));

title(’原始图像’);

subplot(223);image(wcodemat(ca2,nbc));

title(’尺度2的低频系数’);

subplot(224);image(wcodemat(ca1,nbc));

title(’尺度1的低频系数’);

figure(2);

subplot(221);image(wcodemat(chd2,nbc));

title(’尺度2水平方向的高频系数’);

subplot(222);image(wcodemat(cvd2,nbc));

title(’尺度2垂直方向的高频系数’);

subplot(223);image(wcodemat(cdd2,nbc));

title(’尺度2斜线方向的高频系数’);

subplot(224);image(wcodemat(chd1,nbc));

title(’尺度1水平方向的高频系数’);

figure(3);

subplot(121);image(wcodemat(cvd1,nbc));

title(’尺度1垂直方向的高频系数’);

subplot(122);image(wcodemat(cdd1,nbc));

title(’尺度1斜线方向的高频系数’);

[c,s]=wavedec2(I,2,’sym4’); %进行二层小波分解 len=length(c);%处理分解系数,突出轮廓,弱化细节 for I

I就是你要分析的数据2就是小波包的层数,小波分解可以按照树形结构一层一层的往下分解,分解到多细,主要看你想分析的频段是什么,如果是2层小波包分解的话,就是把频率分成了4等分,显示出每个频段的小波系数sym4是小波的名字,小波分解不同于傅里叶分解,他可以自己选取“基”,这里就是选取sym4小波作为函数空间的基。这个不是重点,对于一般的函数,选不同的基差别不大。只有一些比较极端的函数,需要特殊的基来分析。

用小波分解图像之后,对分解系数进行了修改,但是最后重构的图像不对

运行后是什么样的错误?没看到细节不好判断,但我怀疑有可能是数据类型不匹配一类。把具体的出错信息发上来看看吧。看到了,问题应该出在矩阵维度上,wavedec2做完小波分解后会返回两个变量,一个是小波系数,另一个是相当于索引的矩阵,文档中分别以C和S表示。在使用waverec2重构的时候,输入变量也应是一样的内容。按照你的思路,应该是cn为滤波后的小波系数,那么I应该就是wavedec2的第二个返回变量,如果cn没变,则I不应该变。滤波的时候最好不要打乱小波系数的顺序,否则重新组织起来很烦的。wavedec2生成的小波系数组织方式参见后面的参考资料。其实做图像处理还可以考虑用dwt2这个函数。近似图像特别亮?如果排除滤波的影响,我觉得haar小波应该不会出现这个现象。以上。专业路过的老狼

关于本次wavedec2函数详解和matlab压缩图片大小-matlab如何将图像缩放到指定像素大小的函数的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。