画像をスキャンして、各ピクセルの 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 に移植しようとしています。