我需要扫描图像并查看每个像素的 3x3 窗口中的值是否与特定模式匹配。我使用以下代码
import numpy as np
import cv2
im = cv2.imread("image.png")
h, w = im.shape[:2]
for i in range(1, h-1):
for j in range(1, w-1):
p2 = im[i-1, j]
p3 = im[i-1, j+1]
p4 = im[i, j+1]
p5 = im[i+1, j+1]
p6 = im[i+1, j]
p7 = im[i+1, j-1]
p8 = im[i, j-1]
p9 = im[i-1, j-1]
# code for checking the pattern looks something like this:
if (p2 + p3 + p9) == 1 and p4 == 0 and p5 == 1:
val = True
但是上面的代码需要很长时间才能完成。我是 Python 和 numpy 的新手,如何有效地扫描 2d numpy 数组?
实际上,我正在尝试将这种细化代码从 C++ 移植到 Python。