如果你有图像处理工具箱,你应该看看blockproc()函数。
如何将8×8矩阵的矩阵映射到256×256个空矩阵的图像编解码器
4视图(30天)
显示旧的评论
我一直试图让一个自定义编解码器使用MATLAB。代码的第一部分,我256 x256灰度图像分解成8×8块使用以下代码。
下面的代码256 x256图像分解为32 x32块,每个块包含8×8的价值观。
文件=“Cactus.jpg”;
一个= imread(文件);%将文件读入一个矩阵
宽度= B.Width;
身高= B.Height;
%找到8×8的数字矩阵
W =装天花板(宽/ 8);
H =装天花板(身高/ 8);
%创建我作为一个矩阵的零
我= 0 (H * 8 W * 8,“uint8”);
我(1:身高、1:宽度)= A(1:高度,1:宽度);
%将数字分成WxH 8×8矩阵
X = 0 (H, W 8 8);
为J = 1: H
为K = 1: W
为j = 1:8
为k = 1:8
X (J, K, J, K) =我((J - 1) * 8 + J, K (K - 1) * 8 +);
结束
结束
结束
结束
如果我使用MATLAB“大小”命令,我可以看到,X是一个四维数组
大小(X)
ans =
32 32 8 8
然后我后续代码执行所有的编码处理的8×8块x我已经设法解码模块基于同样的原理,但我现在的我想“缝合”8×8块回一个图像。
我有一个四维数组(Z)的解码值,我想256 x256数组放入一个空的。
问题是,我不知道如何
地图
8×8块空数组。
谁能帮忙吗?
Z是下面的大小:
大小(Z)
ans =
32 32 8 8