matlab特效实现,使用MATLAB编程实现图像渐变特效

小波变换是一种信号的时间频率分析方法,在时频两域都具有表征信号局部特征的能力,不仅具有频率域能量紧缩的特性,而且具有空间域能量紧缩的特性。由于具有多分辨率分析的特点,小波变换在数字信号处理、图像处理等领域具有广泛的应用。小波分析是把信号分解成低频a1和高频d1两部分,在分解中,低频a1中失去的信息由高频d1捕获,在下一层的分解中,又将a1分解成低频a2和高频d2两部分,低频a2中失去的信息由高频d2捕获,如此类推下去,可以进行更深层次的分解。二维小波函数是通过一维小波函数经过张量积变换得到的,二维小波函数分解是把尺度j的低频部分分解成四部分:尺度j+1的低频部分和三个方向(水平、垂直、斜线)的高频部分。通过二维小波分析,可以实现图像压缩、消噪、增强等功能。那么能不能通过二维小波分析,实现图像渐变的特效呢?首先,我们来看看图像融合实现方法。我们知道,图像融合是将同一对象的两个或更多的图像合成在一幅图像中,显然,融合后的图像与原各个图像都有一定的相似点。以下面两个图像为例。图1头像一(bust.mat)图2头像二(mask.mat)使用Matlab7.0用二维小波分析将两幅图像融合在一起,编程如下:%bust.mat和mask.mat为Matlab7.0小波工具箱自带的文件。clear;%画出原图一loadbust;X1=X;map1=map;subplot(131);image(X1);colormap(map1);title('原图一');axissquareoff%画出原图二loadmaskX2=X;map2=map;forI=1:256forj=1:256if(X2(I,j)>100)X2(I,j)=1.2*X2(I,j);elseX2(I,j)=0.5*X2(I,j);endendendsubplot(132);image(X2);colormap(map2);title('原图二')axissquareoff%分别进行二维多尺度分解[c1,s1]=wavedec2(X1,2,'sym4');sizec1=size(c1);forI=1:sizec1(2)c1(I)=1.2*c1(I);end[c2,s2]=wavedec2(X2,2,'sym4');%多尺度二维小波重构c=0.5*c1+0.5*c2;s=0.5*s1+0.5*s2;xx=waverec2(c,s,'sym4');subplot(133);image(xx);title('融合图像');axissquareoff运行结果如下:图3图像融合显然,上例在多尺度二维小波重构中,计算融合图像的c和s量,使用了0.5的系数,即求平均。因此,如果将该系数进行动态调整,可以得到图像序列。为此,我们给定一个系数呈线形变化的算法。设定参数a,a由1增长到0,步长为-1到0之间,对于每个a,按下式计算c和s:c=a*c1+(1-a)*c2s=a*s1+(1-a)*s2以步长0.2为例,可得到包含六个图像的序列。显然,a=1,即为原1;a=0,即为原图2。程序如下:clear;loadbust;X1=X;map1=map;loadmaskX2=X;map2=map;forI=1:256forj=1:256if(X2(I,j)>100)X2(I,j)=1.2*X2(I,j);elseX2(I,j)=0.5*X2(I,j);endendend[c1,s1]=wavedec2(X1,2,'sym4');sizec1=size(c1);forI=1:sizec1(2)c1(I)=1.2*c1(I);en

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值