T=wpdec(y,5,'db40');
%对信号y进行小波包分解,层数为5,得到的T为小波树,plot一下就可看到
a10=wprcoef(T,[1,0]);
%a10是对节点[1,0]进行重构后得到的信号。貌似没有对那一层重构这一说法吧,只能是对某层的某个节点进行重构。节点的编号你可以从小波树中看出来
这是我的做法,不过用的是小波包分解。不知对你有没有用
%用于提升变换 --若血残阳
%TransImagem 输入参数为图像文件的路径加文件名
function TransImage(filename)
f=imread(filename);
f=im2double(f); %将矩阵转化成double型
A=-1586134342; %提升系数
B=-0052980118;
R=0882911075;
D=0443506852;
K=1230174105;
[m_orgHeight m_orgWidth]=size(f);
h=ones(m_orgHeight,m_orgWidth);
h=im2double(h);
h=h128;
%第一次列提升开始------------------------------------------------------------------------------------------
f=im2double(f-h); %将矩阵的每个元素减128向直流靠近--
for i=2:2:(m_orgWidth-2) %偶数列提升(C++奇数角标列)
f(:,i)=f(:,i)+A[f(:,i-1)+f(:,i+1)];
end
f(:,m_orgWidth)=f(:,m_orgWidth)+2Af(:,m_orgWidth-1); %最后一列用前一列的2倍来预测
for i=3:2:(m_orgWidth-1) %奇数列提升(C++偶数角标列)
f(:,i)=f(:,i)+B[f(:,i-1)+f(:,i+1)];
end
f(:,1)=f(:,1)+2Bf(:,2); %第一列用第二列的2倍来预测
%第一次列提升完毕--------------------------------------------------------------------------------------------
%第二次列提升开始--------------------------------------------------------------------------------------------
for i=2:2:(m_orgWidth-2) %偶数列提升
f(:,i)=f(:,i)+R[f(:,i-1)+f(:,i+1)];
end
f(:,m_orgWidth)=f(:,m_orgWidth)+2Rf(:,m_orgWidth-1);
for i=3:2:(m_orgWidth-1) %奇数列提升
f(:,i)=f(:,i)+D[f(:,i-1)+f(:,i+1)];
end
f(:,1)=f(:,1)+2Df(:,2);
%第二次列提升完毕-------------------------------------------------------------------------------------------
for i=1:2:(m_orgWidth-1) %调整起奇、偶列值
f(:,i+1)=f(:,i+1)(-K); %偶数列(C++奇数角标)
f(:,i)=f(:,i)/K; %奇数列(C++偶数角标)
end
%第一次行提升开始------------------------------------------------------------------------------------------
for i=2:2:(m_orgHeight-2)
f(i,:)=f(i,:)+A[f(i-1,:)+f(i+1,:)];
end
f(m_orgHeight,:)=f(m_orgHeight,:)+2Af(m_orgHeight-1,:);
for i=3:2:(m_orgHeight-1)
f(i,:)=f(i,:)+B[f(i-1,:)+f(i+1,:)];
end
f(1,:)=f(1,:)+2Bf(2,:);
%第一次行提升完毕------------------------------------------------------------------------------------------
%第二次行提升开始------------------------------------------------------------------------------------------
for i=2:2:(m_orgHeight-2)
f(i,:)=f(i,:)+R[f(i-1,:)+f(i+1,:)];
end
f(m_orgHeight,:)=f(m_orgHeight,:)+2Rf(m_orgHeight-1,:);
for i=3:2:(m_orgHeight-1)
f(i,:)=f(i,:)+D[f(i-1,:)+f(i+1,:)];
end
f(1,:)=f(1,:)+2Df(2,:);
%第二次行提升完毕------------------------------------------------------------------------------------------
for i=1:2:(m_orgHeight-1) %调整奇、偶行值
f(i+1,:)=f(i+1,:)(-K); %偶数行(C++奇数角标)
f(i,:)=f(i,:)/K; %奇数行(C++偶数角标)
end
for i=1:2:(m_orgWidth-1) %把f的奇数列(C语言中的偶数列[角标])存放到h的前半部分
h(:,(i+1)/2)=f(:,i);
end
for i=2:2:m_orgWidth %把f的偶数列(c语言中的奇数列[角标])存放到h的后半部分
h(:,m_orgWidth/2+i/2)=f(:,i);
end
for i=1:2:(m_orgHeight-1) %把h的奇数行(c语言中的偶数行[角标])存放到f的上半部分
f((i+1)/2,:)=h(i,:);
end
for i=2:2:m_orgHeight %把h的偶数行 (c语言中的奇数行[角标])存放到f的下半部分
f(m_orgHeight/2+i/2,:)=h(i,:);
end
f=f(-10); %为看清楚高频部分 给矩阵每个元素同时乘以(-10)
h=ones(m_orgHeight/2,m_orgWidth/2); %定义与低频子带阶数相同的“1”阵
h=im2double(h); %将上述阵变换为double型
h=h128; %给阵的每个元素乘以128(估计是开始减去的128)
f(1:m_orgHeight/2,1:m_orgWidth/2)=f(1:m_orgHeight/2,1:m_orgWidth/2)/(-10)+h; %给低频部分除以(-10)返回原来值,在加上“128”阵,看清楚低频轮廓
imshow(f); %显示变换后
我也在做这方面的论文
关键代码:
clear
[
I,map
]
=
imread
(
’cameraman
tif’)
;
X
=
double
(
I)
;
subp
lot
(121)
;
nbc
=
size
(X,
2)
;
image
(X)
;
colormap
(
gray(
nbc)
)
;
title
(原’
始图像’)
;
%画出原图像
[
c,
s]
=wavedec2
(X,
2,
’sym4’)
;
%进行二层小波分解
len
=
length
(
c)
;
%处理分解系数,突出轮廓,弱化细节
for
I
=
1:
len
if
(
c
(
I
)
>
350)
c
(
I
)
=
23
c
(
I
)
;
else
c
(
I
)
=
0
53
c
(
I
)
;
end
end
nx
=waverec2
(
c,
s,
’sym4’)
;
%分解系数重构
subp
lot
(122)
;
image
(
nx)
;
title
(增’
强图像’)
%画出增强图像
不知道对你有没有用
利用二维小波的图像增强
你英文文献做好了吗
共享一下了
以上就是关于Matlab中小波包分解程序代码不会,小波包能量分析,好的回答疯狂加分!!跪求呀!!全部的内容,包括:Matlab中小波包分解程序代码不会,小波包能量分析,好的回答疯狂加分!!跪求呀!!、MATLAB中 对库图像的三层小波分析 的程序是怎样的、Matlab小波图像增强程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)