LoginSignup
0
2

More than 5 years have passed since last update.

画像内で特定画像を探すにはvisgrepがしっくりきた

Posted at

画像内で特定の画像が含まれていたらその座標をコマンドラインで知りたい。
と、調べていったらxautomationのvisgrepがマッチした話。

画像でいうと以下の形

元画像 探索画像
abc.png c.png

あらすじ
最初に思いついたのは、opencv でテンプレートマッチングだったけど、大げさなので除外した。
次に、imagemagick の compareにsubimage-searchオプションがあり、ごにょごにょ探したら出来た。

compare -subimage-search -metric AE                    abc.jpg c.jpg miff:-  2>/dev/null |        convert - -delete 0 txt:- | sed -n '/#FFFFFF/s/:.*//p'
350,397

が、、5分は重すぎた。metricを rmse に変えても重い。

調べていくと、xautomation の自動化ツールに含まれる visgrep が見つかった。

visgrep

visgrep abc.png c.png
347,408 -1

受付画像がpngのみになってしまうが、1秒未満で結果がでた。
これでスクリーンキャプチャした画像から画面を判断できるようになった。

めでたし。


xautomation ダウンロード
xautomation

visgrepのみコンパイル

./configure 
make visgrep
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2