求MATLAB高手指点在中对一个图像利用sym4函数进行小波变换进行图像增强的源代码,最简单的那种,谢谢

求MATLAB高手指点在中对一个图像利用sym4函数进行小波变换进行图像增强的源代码,最简单的那种,谢谢,第1张

%

x=load('xxx');

% 对图像进行N层分解

[c,l] = wavedec2(x,N,'sym4) ;

c_size = size(x);

% 弱化不重要的分解系数,增强重要的分解系数,这里假设阈值选取为k

for i=1:c_size(2)

if (c(i)>k)

c(i)=2c(i); %这里假设增强两倍

else

c(i)=05c(i)

end

end

%重构图像

x1=waverec2(c,l,'sym4');

I=imread('lena_colorjpg'); nbc=size(I,1); X = im2double(I); % 产生噪声图像 x=imnoise(X,'gaussian',0,0005); % 使用 db2 执行图像的2层小波分解 wname='db2';lev=2; [c,l]=wavedec2(x,lev,wname); sigma_s=0054779; % 图像降噪时,使用wbmpe

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

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

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

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

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

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

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

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

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

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

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

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

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

颜色图map为m3双精度矩阵,各行分别指定红、绿、蓝(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图像压缩算法: 输入图像被分成88或1616的小块,然后对每一小块进行二维DCT(离散余弦变换)变换,变换后的系数量化、编码并传输; JPEG文件解码量化了的DCT系数,对每一块计算二维逆DCT变换,最后把结果块拼接成一个完整的图像。在DCT变换后舍弃那些不严重影响图像重构的接近0的系数。

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

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

2使用MATLAB图像压缩怎么做

I = imread('cameramantif'); % 输入图像

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

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

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

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

mask = [1 1 1 1 0 0 0 0 % 掩膜

1 1 1 0 0 0 0 0

1 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0];

B2 = blkproc(B,[8 8],@(x)mask x); % 图像块处理

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

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

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

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

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

clear;

clc;

for i=2:50

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

c=strcat(c,'bmp');

I=imread(c);

% I=rgb2gray(I)

figure(1);

imshow(I);

end

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

MATLAB 信号处理常用函数 

一、 波形产生 

函数名  功能   

sawtooth  产生锯齿波或三角波  

Sinc  产生sinc或函数sin(pit)/(pit) 

Square  产生方波  

Diric  产生Dirichlet或周期sinc函数

二、 滤波器分析和实现 

函数名  功能   

Abs  求绝对值(幅值)  

Freqs  模拟滤波器频率响应 

Angle  求相角  

Freqspace  频率响应中的频率间隔 

Conv  求卷积  

Freqz  数字滤波器频率响应 

Fftfilt  重叠相加法FFT滤波器实现  

Grpdelay  平均滤波器延迟(群延迟) 

Filter  直接滤波器实现  

Impz  数字滤波器的冲激响应 

Filtfilt  零相位数字滤波  

Zplane  离散系统零极点图 

Filtie  Filter 函数初始条件选择

三、 线性系统变换 

函数名  功能  

Convmtx  卷积矩阵  

Ss2tf    变系统状态空间形式为传递函数形式 

Ploy2rc  从多项式系数中计算反射系数 

Ss2zp   变系统状态空间形式为零极点增益形式 

Rc2ploy  从反射系数中计算多项式系数 

Tf2ss   变系统传递函数形式为状态空间形式 

Residuez   Z变换部分分式展开或留数计算 

Tf2zp     变系统传递函数形式为零极点增益形式 

Sos2ss    变系统二阶分割形式为状态空间形式 

Zp2sos    变系统零极点形式为二阶分割形式 

Sos2zp    变系统二阶分割形式为零极点增益形式 

Zp2tf     变系统零极点增益形式为传递函数形式 

Ss2sos    变系统状态空间形式为二阶分割形式

   

四、 IIR滤波器设计 

Besself   Bessel(贝塞尔)模拟滤波器设计 

Cheby2   Chebyshev(切比雪夫)II型模拟滤波器设计 

Butter    Butterworth(巴特沃思)模拟滤波器设计 

Ellip    椭圆模拟滤波器设计 

Cheby1  Chebyshev(切比雪夫)I 型模拟滤波器设计 

Yulewalk  递归数字滤波器设计

五、 IIR滤波器阶选择 

Buttord    Butterworth(巴特沃思)滤波器阶的选择 

Cheb2ord   Chebyshev(切比雪夫)II型滤波器阶的选择 

Ehebord   Chebyshev(切比雪夫)I 型滤波器阶的选择 

Clipord  椭圆滤波器设计阶的选择 模拟原型滤波器设计 

Besselap  Bessel模拟低通滤波器原型  

Cheb2ap   Chebyshev(切比雪夫)II型低通滤波器原型 

Buttap    Butterworth(巴特沃思)模拟低通滤波器原型 

Ellipap  椭圆模拟低通滤波器原型 

Cheb1ap  Chebyshev(切比雪夫)I 型低通滤波器原型

    

六、 频率变换 

Lp2bp  低通到带通模拟滤波器转换  

Lp2bs  低通到带阻模拟滤波器变换 

Lp2hp  低通到高通模拟滤波器变换  

Lp2lp  低通到低通模拟滤波器转换

七、 滤波器离散化 

Blinear  双线性变换  

Impinvar  冲激响应不变法

八、 FIR滤波器设计 

Fir1 基于窗函数的 FIR 滤波器设计—标准响应 

Intfilt  内插FIR滤波器设计 

Fir2   基于窗函数的 FIR 滤波器设计—任意响应 

Remez  Firls  最小二乘FIR滤波器设计  

Remezord  Parks-McCellan 最优 FIR 滤波器 j阶估计

九、 窗函数 

Boxcar  矩形窗  

Hanning  Hanning(汉宁)窗 

Triang  三角窗  

Blackman  Blackman(布莱克曼)窗 

Bartlett  Bartlett(巴特得特)窗  

Chebwin  Chebyshev(切比雪夫)窗 

Hamming  Hamming(汉明)窗  

Kaiser  Kaiser(凯泽)窗

十、 变换 

Ctz  线性调频Z变换  

Fft  一维快速傅里叶变换 

Dct  离散余弦变换  

Ifft  一维快速傅里叶逆变换 

Idct  逆离散余弦变换  

Fftshift  重新排列 fft的输出 

Dftmtx  离散傅里叶变换矩阵  

Hilbert  Hilbert(希尔伯特)变换

 

十一、 统计信号处理 

Cov  协方差矩阵  

Psd  信号功率谱密度(PSD)估计 

Xcov  互协方差函数估计  

Tfe  从输入输出中估计传递函数 

Corrcoef  相关系数矩阵  

Periodogram  采用周期图法估计功率谱密度 

Xcoor  互相关系数估计  

Pwelch  采用 Welch方法估计功率谱密度 

Cohere  相关函数平方幅值估计  

Rand  生成均匀分布的随机数 

Csd  互谱密度估计  

Randn  生成正态分布的随机数

十二、 自适应滤波器部分 

Adaptfiltlms  最小均方(LMS)自适应算法  

Adaptfiltrls  递推最小二乘(RLS)自适应算法 

Adaptfiltnlms 归一化最小均方(NLMS)自适应算法

十三、 时频分析与小波变换部分 

Spectrogram  短时傅里叶变换  

Idwt  单级离散一维小波逆变换 

Waveinfo  介绍小波工具箱中所有小波的信息 

Wavedec  多级离散一维小波分解 

Cwt  连续一维小波变换  

Appcoef  一维小波变换近似系数 

Dwt  单级离散一维小波变换  

Detcoef  一维小波变换细节系数

十四、 二维信号处理 

Conv2  二维卷积  

Xcorr2  二维互相关参数 

Fft2  二维快读傅里叶变换  

Dwt2  单级离散二维小波变换 

Ifft2  二维逆快速傅里叶变换  

Idwt2  单级离散二维小波逆变换 

Filter2  二维数字滤波器  

Waverec2  多级离散二维小波分解

二维离散小波变换的matlab公式是这样编写的,可以直接拷贝到MATLAB上运行:

clear;clc;

%%%%%%%%%%测试图像只能是方形图像,长宽像素一样。

f=imread('Lenabmp');%%读取图像数据,图像只能保存在m文件所在的路径下

d=size(f);

if length(d)>2

f=rgb2gray((f));%%%%%%%%如果是彩色图像则转化为灰度图

end

T=d(1);

SUB_T=T/2;

% 2进行二维小波分解

l=wfilters('db10','l'); % db10(消失矩为10)低通分解滤波器冲击响应(长度为20)

L=T-length(l);

l_zeros=[l,zeros(1,L)]; % 矩阵行数与输入图像一致,为2的整数幂

h=wfilters('db10','h'); % db10(消失矩为10)高通分解滤波器冲击响应(长度为20)

h_zeros=[h,zeros(1,L)]; % 矩阵行数与输入图像一致,为2的整数幂

for i=1:T; % 列变换

row(1:SUB_T,i)=dyaddown( ifft( fft(l_zeros)fft(f(:,i)') ) )'; % 圆周卷积<->FFT

row(SUB_T+1:T,i)=dyaddown( ifft( fft(h_zeros)fft(f(:,i)') ) )'; % 圆周卷积<->FFT

end;

for j=1:T; % 行变换

line(j,1:SUB_T)=dyaddown( ifft( fft(l_zeros)fft(row(j,:)) ) ); % 圆周卷积<->FFT

line(j,SUB_T+1:T)=dyaddown( ifft( fft(h_zeros)fft(row(j,:)) ) ); % 圆周卷积<->FFT

end;

decompose_pic=line; % 分解矩阵

% 图像分为四块

lt_pic=decompose_pic(1:SUB_T,1:SUB_T); % 在矩阵左上方为低频分量--fi(x)fi(y)

rt_pic=decompose_pic(1:SUB_T,SUB_T+1:T); % 矩阵右上为--fi(x)psi(y)

lb_pic=decompose_pic(SUB_T+1:T,1:SUB_T); % 矩阵左下为--psi(x)fi(y)

rb_pic=decompose_pic(SUB_T+1:T,SUB_T+1:T); % 右下方为高频分量--psi(x)psi(y)

% 3分解结果显示

figure(1);

subplot(2,1,1);

imshow(f,[]); % 原始图像

title('original pic');

subplot(2,1,2);

image(abs(decompose_pic)); % 分解后图像

title('decomposed pic');

figure(2);

% colormap(map);

subplot(2,2,1);

imshow(abs(lt_pic),[]); % 左上方为低频分量--fi(x)fi(y)

title('\Phi(x)\Phi(y)');

subplot(2,2,2);

imshow(abs(rt_pic),[]); % 矩阵右上为--fi(x)psi(y)

title('\Phi(x)\Psi(y)');

subplot(2,2,3);

imshow(abs(lb_pic),[]); % 矩阵左下为--psi(x)fi(y)

title('\Psi(x)\Phi(y)');

subplot(2,2,4);

imshow(abs(rb_pic),[]); % 右下方为高频分量--psi(x)psi(y)

title('\Psi(x)\Psi(y)');

% 5重构源图像及结果显示

% construct_pic=decompose_matrix'decompose_picdecompose_matrix;

l_re=l_zeros(end:-1:1); % 重构低通滤波

l_r=circshift(l_re',1)'; % 位置调整

h_re=h_zeros(end:-1:1); % 重构高通滤波

h_r=circshift(h_re',1)'; % 位置调整

top_pic=[lt_pic,rt_pic]; % 图像上半部分

t=0;

for i=1:T; % 行插值低频

if (mod(i,2)==0)

topll(i,:)=top_pic(t,:); % 偶数行保持

else

t=t+1;

topll(i,:)=zeros(1,T); % 奇数行为零

end

end;

for i=1:T; % 列变换

topcl_re(:,i)=ifft( fft(l_r)fft(topll(:,i)') )'; % 圆周卷积<->FFT

end;

bottom_pic=[lb_pic,rb_pic]; % 图像下半部分

t=0;

for i=1:T; % 行插值高频

if (mod(i,2)==0)

bottomlh(i,:)=bottom_pic(t,:); % 偶数行保持

else

bottomlh(i,:)=zeros(1,T); % 奇数行为零

t=t+1;

end

end

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12188346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存