0

現在、バイナリ画像分類モデルのトレーニングを計画しています。トレーニングしたい画像は、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]

ありがとう!

4

1 に答える 1