現在、バイナリ画像分類モデルのトレーニングを計画しています。トレーニングしたい画像は、2 つの元の画像の違いです。つまり、データ エントリごとに、2 枚の写真から始めて、それらの違いを取り、その違いに 0 または 1 のラベルを付けます。私の質問は、この違いを見つける最善の方法は何かということです。私は画像の通常の減算について知っていcv2.absdiff
ます-これを行う最も効果的な方法は何ですか?
データについて: 私がトレーニングしている画像はスクリーンショットで、通常は同じですが、わずかな違いがある場合があります。通常の減算では、absdiff よりも差が小さいように見えることがわかりました。
これは、absdiff に使用するコードです。
diff = cv2.absdiff(img1, img2)
mask = cv2.cvtColor(diff, cv2.COLOR_BGR2GRAY)
th = 1
imask = mask>1
canvas = np.zeros_like(img2, np.uint8)
canvas[imask] = img2[imask]
そして、これは通常の減算の場合:
def extract_diff(self,imageA, imageB, image_name, path):
subtract = imageB.astype(np.float32) - imageA.astype(np.float32)
mask = cv2.inRange(np.abs(subtract),(30,30,30),(255,255,255))
th = 1
imask = mask>1
canvas = np.zeros_like(imageA, np.uint8)
canvas[imask] = imageA[imask]
ありがとう!