如何将图像分成相同大小的块?

时间:2012-07-12 13:13:18

标签: image matlab image-processing fft sliding-window

我有一张图片,我想把它分成相同大小的块。例如,图像大小为16.我想在每个块上划分我们应用函数(例如SVD,DWT,傅里叶变换)的图像,以搜索哪些块彼此相似。例如,我可以复制图像的一部分并将其粘贴到图像的另一部分,因此块彼此相似,我想搜索那些相似的块。

我是Matlab的新手,如果有人能帮助我分割图像,我真的很感激。 感谢

3 个答案:

答案 0 :(得分:1)

您可以使用blockprocim2col。有关示例,请参阅blockproc的{​​{3}}。

答案 1 :(得分:0)

我无法提供matlab答案,但您可以查看Image segmentation(谷歌搜索示例)。有很多不同的方法可以做到这一点,具体取决于你想要的细分类型。

您还可以查看论文Super-Resolution from a Single Image,该论文描述了一种在不同尺度上搜索图像重复出现的块的方法。链接的论文还描述了如何从多个图像中的小特征创建图像数据库。

答案 2 :(得分:0)

我有一个用python编写的解决方案,你可以用对你有用的形式进行转换。

rsize = 4   #row size of the kernel
csize = 4   #column size of the kernel

for r in range(0,resized.shape[0] - rsize, rsize):
    for c in range(0,resized.shape[1] - csize, csize):
        window = resized[r:r+rsize,c:c+csize]

我假设图像的大小为17 x 17.这里可以用零填充图像的最后一列和最后一行,以使此代码工作得很好。

您可以将此逻辑应用于MATLAB。