2

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

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

4

3 回答 3

1

您可以使用blockprocim2col。有关示例,请参见文档。blockproc

于 2012-07-12T13:25:37.443 回答
0

我无法提供 matlab 答案,但您可以查看图像分割(以谷歌为例)。有许多不同的方法可以做到这一点,具体取决于您想要的细分类型。

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

于 2012-07-24T18:40:24.687 回答
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。

于 2016-12-14T12:30:58.477 回答