2013-09-24 43 views
-1

我是新來的小波和數字圖像處理.. 我已經寫了我自己的臉圖像的小波分解一個小代碼,但它似乎有一些問題小波分解查詢

X = imread('face.jpg'); 


[cA1,cH1,cV1,cD1] = dwt2(X,'db1'); 

i = [ cA1 cH1; cV1 cD1]; 
imshow(i) 

任何人都可以告訴我這裏有什麼問題或者我缺少什麼。

+2

你能在你遇到什麼樣的問題詳細點嗎?你的代碼是否沒有運行(如在,是否引發錯誤),還是在運行,但沒有給你預期的輸出?如果它拋出錯誤,那麼說出那個錯誤是有幫助的。如果它沒有給你預期的結果,它有助於說明結果是什麼,以及它們與你的期望有什麼不同。 – Mozglubov

+1

這裏是'dwt2'的文檔... http://www.mathworks.com/help/wavelet/ref/dwt2.html – zenpoy

+0

沒有錯誤...但是四個圖像cA1,cH1,cV1,cD1當我形成那些左上角圖像的近似矩陣不能正確顯示時...它只有幾個點...我想我缺少一些東西 – Desperado

回答

1

我猜這可能是問題,這裏是一個解決方案。嘗試使用wcodemat重新刻度顯示矩陣(無恥地撕開的http://www.mathworks.com/help/wavelet/ref/wcodemat.html):

load woman; 
% Get the range of the colormap 
NBCOL = size(map,1); 
% Obtain the 2D dwt using the Haar wavelet 
[cA1,cH1,cV1,cD1] = dwt2(X,'db1'); 
% Display without scaling 
image(cA1); 
colormap(map); 
title('Unscaled Image'); 
figure; 
% Display with scaling 
image(wcodemat(cA1,NBCOL)); 
colormap(map); 
title('Scaled Image'); 
+0

load face.jpg; %獲取色圖的範圍 NBCOL = size(map,1); %使用Haar小波[cA1,cH1,cV1,cD1] = dwt2(X,'db1')獲得2D dwt。 %顯示不縮放 圖像(cA1); colormap(map); title('Unscaled Image'); figure; %縮放顯示 image(wcodemat(cA1,NBCOL)); colormap(map); title('Scaled Image'); – Desperado

+0

使用圖像時出錯 TrueColor CData包含超出範圍0.0 <=值<= 1.0的元素 face_wavelet(第7行)中的錯誤 image(cA1); – Desperado

+0

我不知道是什麼...獲取色彩地圖的範圍.. – Desperado