目標:在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
添加回答
舉報
0/150
提交
取消