日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB图像小波变换

發(fā)布時間:2023/12/19 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB图像小波变换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??

小波變換與小波包變換

? ? ? ? 人臉圖像f(x,y) 的一層小波變換如下圖所示:

? ? ? ? 圖中L H 分別表示低通濾波器高通濾波器,l(n) 和h(n) 分別表示它們相應的脈沖響應,2↓1表示降2采樣fLLfHH分別表示雙向低頻和高頻小波子空間圖像,而fLHfHL分別表示一個方向低頻、另一個方向高頻的小波子空間圖像。

? ? ? ? 若繼續(xù)對fLL?做小波分解,則稱為二層小波變換;若對4個子圖都繼續(xù)做小波分解,則稱為二層小波包變換。對只含有低頻成分的子圖做小波分解,則稱為不完全小波包變換

圖像小波變換的Matlab代碼

clc; clear; close?all;Xa?=[40,10,56,46];??%?56*2=112,46*2-92(圖片分辨率為112*92) Xh?=[40,10,56,46]; Xv?=[40,10,56,46]; Xd?=[40,10,56,46]; for?i?=?1:40????????%?40個人臉for?j?=?1:10????%?1人10個表情I?=?imread(strcat('D:\Faces\ORL\s',num2str(i),'\',num2str(j),'.bmp'));??????[c1,s1]=wavedec2(double(I),1,'db1');????%?分別做4個方向的小波分解ca?=?appcoef2(c1,s1,'db1',1);ch?=?detcoef2('h',c1,s1,1);cv?=?detcoef2('v',c1,s1,1);cd?=?detcoef2('d',c1,s1,1);%?A?=?uint8([wcodemat(ca,255),wcodemat(ch,255);wcodemat(cv,255),wcodemat(cd,255)]);%?subplot(2,5,j),imshow(A,[],'InitialMagnification',100);for?k?=?1:56for?l?=?1:46Xa(i,j,k,l)?=?ca(k,l);Xh(i,j,k,l)?=?ch(k,l);Xv(i,j,k,l)?=?cv(k,l);Xd(i,j,k,l)?=?cd(k,l);endendend? endfor?i?=?1:1?????%?查看第1個人的10個表情圖的小波分解效果for?j?=?1:10xa?=?[56,46];xh?=?[56,46];xv?=?[56,46];xd?=?[56,46];for?k?=?1:56for?l?=?1:46xa(k,l)?=?Xa(i,j,k,l);xh(k,l)?=?Xh(i,j,k,l);xv(k,l)?=?Xv(i,j,k,l);xd(k,l)?=?Xd(i,j,k,l);endendA?=?uint8([wcodemat(xa,255),wcodemat(xh,255);wcodemat(xv,255),wcodemat(xd,255)]);subplot(2,5,j),imshow(A,[],'InitialMagnification',100);end end

效果圖

后記

? ? ? ? 本例僅給出圖像1層小波變換,可以根據(jù)實際項目需求做n層圖像小波分解,用于提取人臉圖像特征。例如:

[c,s]?=?wavedec2(double(ca),1,'db1'); a?=?appcoef2(c,s,'db1',1); %?構(gòu)造基本分類器D1 for?m?=?1:28for?n?=?1:23D1(i,j,m,n)?=?a(m,n);end end???????? h?=?detcoef2('h',c,s,1); v?=?detcoef2('v',c,s,1); d?=?detcoef2('d',c,s,1);

? ? ? ? 具體可以參考論文基于模糊積分的不完全小波包子空間集成人臉識別 翟俊海 ?王熙照 ?張素芳

Reference

Matlab小波變換的三級分解程序用于圖像處理

帖中代碼:

clc;clear;close?all I?=?imread('lena.bmp'); %subplot(221); subplot(221),imshow(I,[],'InitialMagnification',100); title('原始載體圖像')%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%圖像的一級小波分解? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% [c1,s1]=wavedec2(double(I),1,'db1'); ca88?=?appcoef2(c1,s1,'db1',1); ch88?=?detcoef2('h',c1,s1,1); cv88?=?detcoef2('v',c1,s1,1); cd88?=?detcoef2('d',c1,s1,1); A88?=?uint8([wcodemat(ca88,255),wcodemat(ch88,255);wcodemat(cv88,255),wcodemat(cd88,255)]); %subplot(222);? subplot(222),imshow(A88,[],'InitialMagnification',100); title('圖像的一級小波分解');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%圖像的二級小波分解? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[c,s]=wavedec2(double(I),2,'db1'); ca2?=?appcoef2(c,s,'db1',2); ch2?=?detcoef2('h',c,s,2); cv2?=?detcoef2('v',c,s,2); cd2?=?detcoef2('d',c,s,2); %ca1?=?appcoef2(c,s,'db2',1); ch1?=?detcoef2('h',c,s,1); cv1?=?detcoef2('v',c,s,1); cd1?=?detcoef2('d',c,s,1);A1?=?[ca2*4,ch2*4;cv2*4,cd2*4]; k=s(2,1)*2-s(3,1); ch1?=?padarray(ch1,[k?k],1,'post'); cv1?=?padarray(cv1,[k?k],1,'post'); cd1?=?padarray(cd1,[k?k],1,'post'); %A?=?[A1,ch1*4;?cv1*4,cd1*4]; A?=?uint8([wcodemat(A1,255),wcodemat(ch1*10,255);?wcodemat(cv1*10,255),wcodemat(cd1*10,255)]); %?min?=?min(A(:)); %?max?=?max(A(:)); %subplot(223);? subplot(223),imshow(A,[],'InitialMagnification',100); title('圖像的二級小波分解');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%圖像的三級小波分解? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[c,s]=wavedec2(double(I),3,'db1'); ca3?=?appcoef2(c,s,'db1',3); ch3?=?detcoef2('h',c,s,3); cv3?=?detcoef2('v',c,s,3); cd3?=?detcoef2('d',c,s,3); ch2?=?detcoef2('h',c,s,2); cv2?=?detcoef2('v',c,s,2); cd2?=?detcoef2('d',c,s,2); ch1?=?detcoef2('h',c,s,1); cv1?=?detcoef2('v',c,s,1); cd1?=?detcoef2('d',c,s,1); A2?=?[ca3*4,ch3*4;cv3*4,cd3*4]; k=s(2,1)*2-s(3,1); ch2?=?padarray(ch2,[k?k],1,'post'); cv2?=?padarray(cv2,[k?k],1,'post'); cd2?=?padarray(cd2,[k?k],1,'post'); A1=?[A2,ch2*4;?cv2*4,cd2*4]; k=s(2,1)*4-s(4,1); ch1?=?padarray(ch1,[k?k],1,'post'); cv1?=?padarray(cv1,[k?k],1,'post'); cd1?=?padarray(cd1,[k?k],1,'post'); AA?=?uint8([wcodemat(A1,255),wcodemat(ch1*4,255);?wcodemat(cv1*4,255),wcodemat(cd1*4,255)]); %?min?=?min(A(:)); %?max?=?max(A(:)); %subplot(224); subplot(224),imshow(AA,[],'InitialMagnification',100); title('圖像的三級小波分解');

效果圖:



轉(zhuǎn)載于:https://my.oschina.net/keyven/blog/552050

總結(jié)

以上是生活随笔為你收集整理的MATLAB图像小波变换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。