【发布时间】:2017-05-24 07:17:01
【问题描述】:
我想将图像划分为 k*k 个块,然后取每个块的 dct。我向图像添加零填充,因此图像的大小是块大小的整数因子。我写了这段代码,但我不知道如何获取 dct 的块并将结果放入具有相同图像大小的矩阵中。
[m,n]=size(I);
m1=floor(m/K);
n2=floor(n/K);
if(m1~=m/K)
row=m1*K+K;
else
row=m;
end
if(n2~=n/K)
col=n2*K+K;
else
col=n;
end
I_pad=zeros(row,col);
% copy image I to I_pad
for i=1:m
for j=1:n
I_pad(i,j)=I(i,j);
end
end
% this loop move on blocks of image
for i=1:K:row
for j=1:K:col
for i2=i:i+K-1
for j2=j:j+K-1
% this for move of one block
end
end
end
end
【问题讨论】:
-
您可以尝试使用 blockproc 代替繁重的循环...
-
我不能使用
blockproc。我的教授不让我(: