個人的に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
画像2
わかりましたでしょうか?結果は ↓
赤枠で囲われたところが違いになります。# 文書を比較
文書を比較する事もできます。試しにchat-GPTで適当なショートストーリーを書いてもらいました。
文書1
文書2
文書2は数カ所単語を弄っています。内容には特に意味はありません。これも上記のプログラムにかけてみると、
ちゃんと検出してくれるようです。説明によるとドット単位で色の違いを見分けているようです。