查看单个帖子
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在MATLAB中将图像分区到64块

我想为每个图像计算颜色布局描述符(CLD)。此算法包括四个阶段。在第一阶段中,我必须将每个图像划分为64个块i(8脳8)n,以便从每个块中计算出一种代表色..我尝试使用(For循环)将图像划分为64个块,但得到64个婷图像。我想使用(8脳8)块获取图像,以便通过应用DCT变换然后进行锯齿形扫描来完成算法



回答:

这是我之前为完全相同的问题(8x8块,DCT系数等)编写的一些代码...

img=imread('filename') [img_x,img_y]=size(img); block_size=8; slide_len=1; for ix=block_size/2:slide_len:img_x-block_size/2 for jy=block_size/2:slide_len:img_y-block_size/2 current_block=img((ix-block_size/2+1):(ix+block_size/2),(jy-block_size/2+1):(jy+block_size/2)); dct_coeff=reshape(dct2(current_block),1,block_size^2); end end slide_len设置一个块与下一个块之间的偏移量。在这种情况下,每次偏移一个像素。但是,如果要使用非重叠块,则应将其设置为8。通常在此应用程序中,会使用一些重叠。



更多&回答...
poster 当前离线   回复时引用此帖