我想通过执行将输出256个小波系数的块(16x16)小波变换来定位将图像深度与图像相关联的空间频率测量。
我不确定如何在块上执行小波变换而不是整个图像。我试过了:
f = @(x) wavedec2(x.data,2,'db1');
J = blockproc(gI,[N, N],f);
但它无法正常工作。
所以我尝试在整个图像上执行小波变换:
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
但是,我不知道如何只计算每个块中的高频和低频系数。
任何帮助将不胜感激。
答案 0 :(得分: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);