2015-11-04 29 views
2

我想通過執行將輸出256個小波係數的塊(16x16)小波變換來定位將深度與圖像相關的空間頻率測量。對圖像執行塊小波變換

我不知道如何在塊上執行小波變換而不是整個圖像。我試過了:

f = @(x) wavedec2(x.data,2,'db1'); 
J = blockproc(gI,[N, N],f); 

但它不能正常工作。

於是,我就對整個圖像進行小波transfrom:

I = imread('input.jpg'); 
I = im2double(I); 
gI = rgb2gray(I); 
[C, S]= wavedec2(gI,2,'db1'); % Perform wavelet decomposition 
D = detcoef2('h',C,S,1); %Extract details coefficients 

但是,我不知道怎麼去只有高頻和低頻係數的計數每個塊。

任何幫助,將不勝感激。

回答

1

一個執行塊圖像小波變換方式:

N = 32; % block size 16x16 
A = mat2cell(gI, repmat(N,[1 size(gI,1)/N]),... 
repmat(N,[1 size(gI,2)/N])); 
[LL, LH, HL, HH] = cellfun(@(X) dwt2(X,'haar'),A, ... 
'UniformOutput',false); 
LL_final = cell2mat(LL); 
LH_final = cell2mat(LH); 
HL_final = cell2mat(HL); 
HH_final = cell2mat(HH); 
+0

它的工作原理!謝謝。但是,我怎樣才能得到每個區塊的高頻和低頻係數? – DML2014