2015-11-04 97 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