用小波對影象分解,和特徵分析
阿新 • • 發佈:2019-02-08
path = 'C:\Program Files\MATLAB\R2013a\bin\Original_Images\DIP3E_Original_Images_CH10\'; fileExt = '*.tif'; files = dir(fullfile(path,fileExt)); len = size(files,1); n=0; for i=1:len fileName = strcat(path,files(i,1).name); f=imread(fileName); figure,imshow(f);title('original img'); I=im2double(f); for j=1:8 wname=['sym',num2str(j)]; % sym1,sym2.....sym8 db1,db2----->db10 coif1--->coif5 %wavemngr('read',1) 檢視工具箱中所有的小波 [c,s]=wavedec2(I,4,wname); for k=1:4 ca=appcoef2(c,s,wname,k); ch=detcoef2('h',c,s,k); % 一級水平細節 cv=detcoef2('v',c,s,k); % 一級垂直細節 cd=detcoef2('d',c,s,k); % 一級對角細節 ca=mat2gray(ca); % 歸一化 ch=mat2gray(ch); cv=mat2gray(cv); cd=mat2gray(cd); figure,imshow([ca,ch;cv,cd]); title([wname,' wavedec.: approx. ','and det. coefs (lev. ',num2str(k),')',num2str(n)]); name=['D:\img\',wname,' wavedec approx ', 'level ',num2str(i),num2str(j),num2str(k), num2str(n)]; n=n+1; saveas(gcf, name, 'jpg'); close all; end end end;
第一個for 迴圈 遍歷資料夾內所有的tif 影象
第二個for 迴圈是採用何種小波
第三個for 迴圈是對影象進行N級分解