2 つのソース イメージがあります。
それらは同等に見えますが、わずかにずれています。したがって、各画像との違いが色分けされた差分画像を作成しました(緑と赤)。
私は次のように作成しました:
convert first.png second.png \
\( -clone 0,1 -compose difference -composite \
-threshold 0 \) \
\( -clone 0 -clone 2 -compose minus -composite \
-threshold 0 -fill green1 -opaque white \
-channel rgba -fill none -opaque black \) \
\( -clone 1 -clone 2 -compose minus -composite \
-threshold 0 -fill red -opaque white \
-channel rgba -fill none -opaque black \) \
\( -clone 0,1 -evaluate-sequence mean \) \
-delete 0-2 \
-reverse \
-background none \
-compose over \
-flatten \
multicolor_difference.png
ここで提案されているように:
http://www.imagemagick.org/discourse-server/viewtopic.php?t=26105
ここで、コードで操作できる形状のリストを取得できるように、さまざまな緑と赤の四角形の位置を取得したいと考えています。
画像をテキストに変換すると
# ImageMagick pixel enumeration: 2880,1370,255,srgb
0,0: (0,255,0) #00FF00 lime
1,0: (0,255,0) #00FF00 lime
2,0: (255,255,255) #FFFFFF white
3,0: (255,255,255) #FFFFFF white
色が緑がかった色または赤であるかどうかをチェックするすべてのピクセルを繰り返し処理します。これはもちろんパフォーマンスキラーです。
特定の形状を画像で検索するより良い方法はありますか? 特定の色の発生をチェックするだけでも、大きな改善になります。コードで解釈できるように、出力はテキストにする必要があります。
全体として、2 つの画像の違いをテキスト形式で説明したいと思います。最良の場合、すべての長方形に対して 10 個の出力しかありません。