我需要从大小为 NxN (N>>10) 的图像中获取大小为 10x10 的滑动窗口的局部像素直方图。
我正在使用以下代码来获取滑动窗口。
B = im2col(inputImage, [10, 10],'sliding');
但是根据这段代码,我无法确定两个本地窗口之间的重叠。如何从具有大小为 mxm 的滑动窗口和两个滑动窗口之间的一半重叠的图像中获取局部直方图?
我需要从大小为 NxN (N>>10) 的图像中获取大小为 10x10 的滑动窗口的局部像素直方图。
我正在使用以下代码来获取滑动窗口。
B = im2col(inputImage, [10, 10],'sliding');
但是根据这段代码,我无法确定两个本地窗口之间的重叠。如何从具有大小为 mxm 的滑动窗口和两个滑动窗口之间的一半重叠的图像中获取局部直方图?
IM2COL 函数总是生成[n-1,m-1]
重叠的滑动窗口(即 1 个像素移位)。也许您可以按原样调用 IM2COL,然后丢弃您不想要的列。请记住,滑动窗口是通过以列顺序方式遍历矩阵来生成的。
快速搜索发现了一个自定义im2colstep
函数,以MEX 文件的形式实现。在您的情况下,您可以将其称为:
cols = im2colstep(inputImage, [10 10], [5 5]);
根据作者的说法,该功能是KSVD-Box软件包的一部分,“可免费供学术和个人使用”。