猿问

窗口在图像中滑动

目标:在2D图像(灰度)中滑动2D“窗口”。对于图像的每个像素,复制窗口(图案)内的所有像素,然后移至下一个像素。


问题:非常慢。我想加快速度。


使用Cython(ewwww)除外。


我在具有48个内核的服务器中使用此代码,因此可以选择并行处理。因此,我对如何使用numpy解决多线程解决方案感到困惑。


说明:我有一种称为提取的方法。此方法接收灰度图像,位置i和j指的是窗口居中的图像的x轴和y轴。对于i和j的每个位置,我将窗口看到的内容复制到另一个数组。


img 是2d NumPy数组。


pat可以删除,我可以返回模式。没关系


i和j是整数。


def extract(self, img, i, j, pat):

        pattern = pat

        win = self.window

        hh = win.shape[0]

        ww = win.shape[1]

        hh2 = hh / 2

        ww2 = ww / 2

        k = 0


        for l in range(-hh2, hh2 + 1):

            for m in range(-ww2, ww2 + 1):

                    try:

                        pattern[k] = img[i + l, j + m]

                    except:

                        pattern[k] = 0

                    k += 1


侃侃尔雅
浏览 185回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答