概述
clc;
clear all;
X1=imread('cs1.jpg');
X1=double(X1)/256; %这里转化成double类型,否则使用小波变换输出的会有大量大于1的存在,会导致图像显示有问题
% X1=rgb2gray(X1); %原本以为小波变换只能使用一维的,看来可以使用3维
figure;
imshow(X1),title('左焦距');
axis square;
X2=imread('cs2.jpg');
X2=double(X2)/256;
% X2=rgb2gray(X2);
figure;
imshow(X2),title('右焦距');
axis square;
[c1,s1]=wavedec2(X1,2,'sym4'); %将x1进行2维,使用‘sym4’进行变换
sizec1=size(c1);for I=1:sizec1(2);
c1(I)=1.2*c1(I); 将分解后的值都扩大1.2倍
end
[c2,s2]=wavedec2(X2,2,'sym4');
c=c1+c2; %计算平均值
c=0.5*c;
s=s1+s2;
s=0.5*s;
xx=waverec2(c,s,'sym4'); %进行重构
figure;
imshow(xx),title('融合后的');
axis square;
结论:这里没有对图像进行特别的处理所以效果不是太好,只是演示小波融合图像的方法。
【c,s】wavedec2(x, n,'name')函数的使用
C是分解的各个系数,这里分两层,C中存的是【ABBCCC】的数据是按行存的,s中是存的的是:【A的行数,A的列数;B的行数,B的列数;C的行数,C的列数;原图的行数,原图的列数】。L层就有3L+1个小图。
最后
以上就是威武灰狼为你收集整理的matlab使用小波变换进行图像融合的全部内容,希望文章能够帮你解决matlab使用小波变换进行图像融合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复