www.gusucode.com > 自己编写的一个基于matlab的图像压缩程序,有GUI界面,不能程度的压缩效果以及信噪比 > 自己编写的一个基于matlab的图像压缩程序,有GUI界面,不能程度的压缩效果以及信噪比/BP神经网络的图像压缩/wavelets压缩/seqdual.m
function [Seq,ScaleS,ScaleD] = seqdual(Seq,ScaleS,ScaleD) % Dual of a lifting sequence L = size(Seq,1); for k = 1:L % f'(z) = -f(z^-1) Seq{k,2} = -(Seq{k,2} - length(Seq{k,1}) + 1); Seq{k,1} = -fliplr(Seq{k,1}); end if all(Seq{1,1} == 0) Seq = reshape({Seq{2:end,:}},L-1,2); else [Seq{1:L+1,:}] = deal(0,Seq{1:L,1},0,Seq{1:L,2}); end ScaleS = 1/ScaleS; ScaleD = 1/ScaleD; return; function [h,g] = seq2hg(Seq,ScaleS,ScaleD,Dual) % Find wavelet filters from lifting sequence if Dual, [Seq,ScaleS,ScaleD] = seqdual(Seq,ScaleS,ScaleD); end if rem(size(Seq,1),2), [Seq{size(Seq,1)+1,:}] = deal(0,0); end h = {1,0}; g = {1,1}; for k = 1:2:size(Seq,1) h = lp_lift(h,g,{Seq{k,:}}); g = lp_lift(g,h,{Seq{k+1,:}}); end h = {ScaleS*h{1},h{2}}; g = {ScaleD*g{1},g{2}}; if Dual h{2} = -(h{2} - length(h{1}) + 1); h{1} = fliplr(h{1}); g{2} = -(g{2} - length(g{1}) + 1); g{1} = fliplr(g{1}); end return;