欢迎来到天天文库
浏览记录
ID:52686769
大小:35.50 KB
页数:2页
时间:2020-03-29
《基于小波变换的图像融合程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、set(handles.text4,'visible','on')pause(1)[X,map]=imread('C:UsersAdministratorDesktopmatlabimage1.jpg');%map是色谱,map每一行分别代表R、G、B,涵盖了图像中出现的所有颜色组合。%X是像素颜色值,数据矩阵X的值指向map的某一行。X1=X;map1=map;subplot(2,2,1);image(X1);colormap(map1);%指当前显示的figure窗口色图按照指定map1进
2、行搭配,用MAP矩阵映射当前图形的色图title('原始图像1')axissquare[X,map]=imread('C:UsersAdministratorDesktopmatlabimage2.jpg');X2=X;map2=map;subplot(2,2,2);image(X2);colormap(map2);title('原始图像2');axissquareifndims(X1)==3%表示三位矩阵X3=rgb2gray(X1);%满足这个条件时,把X1转换成灰度图赋值给X3elseX
3、3=X1;%·否则直接赋值endifndims(X2)==3X4=rgb2gray(X2);%满足这个条件时,把X2转成灰度图赋值给X4elseX4=X2;endX3=double(X3);%转换成双精度数据X4=double(X4);%matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。所以要先将图像转为double格式的才能运算,如果不转换,计算会产生溢出%%进行小波变换[C1,L1]=wavedec2(X3,2,'sym4');%小波变换[C2,
4、L2]=wavedec2(X4,2,'sym4');%小波变换%wavedec2:二维信号的多层小波分解%2:就是小波包的层数,小波分解可以按照树形结构一层一层的往下分解,分解到多细,主要看你想分析的频段是什么,如果是2层小波包分解的话,就是把频率分成了4等分,显示出每个频段的小波系数&sym4:是小波的名字,小波分解不同于傅里叶分解,他可以自己选取“基”,这里就是选取sym4小波作为函数空间的基。这个不是重点,对于一般的函数,选不同的基差别不大。只有一些比较极端的函数,需要特殊的基来分析。%%融合C=
5、(C1+C2)*0.5;%给C赋值X=waverec2(C,L1,'sym4');%调用函数waverec2%waverec2:二维信号的多层小波重构X=uint8(X);%把矩阵转化成uint8类型,uint8(8位无符号整数),subplot(223)%画2行2列第3个图title('基于小波变换的图像融合');imshow(X);%画图set(handles.text4,'visible','off')set(handles.pushbutton1,'visible','off')
此文档下载收益归作者所有