【发布时间】:2015-03-18 19:20:44
【问题描述】:
我想将我的图像划分为重叠的块并单独处理这些块并将每个矩阵的输出存储到一个矩阵中。
我尝试过使用im2col,但它根本不实用。我的代码是:
kek = im2col(images_m{1}, [64 64], 'sliding');
for i = 1: size(kek, 2)
new = reshape(kek(:,i), [64 64]);
%Extract features from the new block and save it in a concatenating
%matrix
end
这样做有两个问题,第一,没有办法控制块的重叠。
第二个过程非常缓慢并且非常非常耗内存。在第三张图片上我的电脑基本上内存不足,即使我clear之前的图片也是如此。
有没有什么有效的方法可以将我的图像分成重叠的块?
附:我无法为每个图像创建一个 for 图像,因为每个图像的大小都不同:(
【问题讨论】:
-
看看Efficient Implementation of
im2colandcol2im是否有帮助。另外,您正在处理什么尺寸的图像?基本上,带有im2col的邻域矩阵本身就很大,因此在本地执行特征提取然后保存比创建邻域矩阵然后进行特征提取处理更有意义。 -
@Divakar 谢谢,但你链接的问题是
im2col的实现,我已经有图像处理工具箱,如果我要使用该功能,我将如何控制@ 987654330@重叠窗口?我同意你的看法,这是非常低效的。但我试图在这里找到替代品。blockproc在这里是理想的,但问题在于blockproc的输出,这个问题准确地解释了我的问题:stackoverflow.com/questions/29109241/…
标签: image matlab image-processing