我有一个家庭作业,其中我有 640x480 的图像,我想把它分成 16x16 块。有人可以告诉我该怎么做吗?如果可能的话,我想避免循环。我已经尝试了几个小时,但没有运气......
问问题
1639 次
2 回答
1
这可能不是最佳实践,但您可以根据需要做一些事情。它将允许您从生成的 40 x 30 二维矩阵中调用每个 16x16 块。
注意:这只是一些输入的代码,我自己没有测试过。
如果你想把它解析成一个单元格数组,你可以这样做:
%Original Image
Image = imread(somefilename);
%Block size desired (16x16)
bsize = 16;
% 40 and 30 come from dividing the 640 and 480 by 16 since you want 16x16 blocks.
% result = mat2cell(Y, bsize*ones(1,40), bsize*ones(1,30))
result = mat2cell(Y, bsize*ones(1,size(Image,1)/bsize), bsize*ones(1,size(Image,1)/bsize));
于 2012-06-29T14:49:55.143 回答