如何在matlab中将图像分割为64块

zen*_*nab 2 matlab image data-partitioning

我想计算每个图像的颜色布局描述符(CLD)。该算法包括四个阶段。在第一阶段,我必须将每个图像分区为 64 个块 i(8\xc3\x978)n 以便计算每个块的单个代表颜色。我尝试使用(For 循环)将图像分区为 64 个块,但我获取 64 ting 图像。我想获得具有 (8\xc3\x978) 块的图像,以便通过应用 DCT 变换然后锯齿形扫描来完成算法

\n

Jon*_*nas 5

将图像分区为块然后对其运行一些处理的一种方法是使用内置函数BLOCKPROCblkproc在旧版本的 Matlab 中调用)。

%# find block length in order to get 64 blocks
imageSize = size(img);
blockLen = round(imageSize(1:2)/8);

%# apply a function to each block
out = blocproc(img,blockLen,@myFunction)
Run Code Online (Sandbox Code Playgroud)

myFunction是您想要应用于每个块的函数。您可以将其定义为代码的子函数、单独的 m 文件或匿名函数。输出将连接在 8x×8x 数组中,其中 x 是函数输出的大小。myFunction应该有一个输入参数 ,blockStruct它是一个结构体,其字段data包含块的像素值,以及字段borderblockSizeimageSizelocation