ダーク/ライト切り替え

【python】2枚の画像の違いを検出する方法【初心者】

投稿日 2023-02-15T15:07:33.431202+09:00

【python】2枚の画像の違いを検出する方法【初心者】

目次

目次を読み込み中...

個人的に2つの画像を比較して違いを見分けるアプリが欲しかったので作ってみました。同様のものは既に多数あるかと思いますが初心者でも簡単に作れるので紹介します。

opencvをインストール

必要な人はpip install opencv-contrib-pythonコマンドでインストールして下さい。

コードを実行

cv2.absdiff関数を使用して2つの画像の絶対差を計算し、しきい値を適用して大幅に異なるピクセルを特定します。サンプルコードは次のとおりです。

このコードでは、まず 2 つの画像 ('image1.jpg' と 'image2.jpg') を読み込み、cv2.cvtColor関数を使用してグレースケールに変換します。次に、cv2.absdiff関数を使用して 2 つの画像の絶対差を計算します。cv2.threshold関数を使用して差分画像にしきい値を適用します。この関数は、特定の値を下回るすべてのピクセルを 0 に設定し、その値を超えるすべてのピクセルを 255 に設定します。次に、cv2.findContours関数を使用して、しきい値処理された画像の有意差の輪郭を識別し、描画します。関数を使用して、これらの違いを四角形で囲みますcv2.rectangle。最後に、cv2.imshow関数を使用して出力画像を表示します。

画像を比較

下の画像には間違いが3つあります。

画像1

image1

画像2

image2

わかりましたでしょうか?結果は ↓

result

赤枠で囲われたところが違いになります。

文書を比較

文書を比較する事もできます。試しにchat-GPTで適当なショートストーリーを書いてもらいました。

文書1

story1

文書2

story2

文書2は数カ所単語を弄っています。内容には特に意味はありません。これも上記のプログラムにかけてみると、

result

ちゃんと検出してくれるようです。説明によるとドット単位で色の違いを見分けているようです。


準備中

このサイトをシェアする