2017-02-09 10 views
1

私は1600x1600pxの大きな画像と50x50pxの小さな画像を持っています。テストを実行するには約3分20秒かかります。小さい画像は、50×500ピクセルの領域内でのみ大きな画像の内側に表示されることが予想されます。-subimage-searchの性能を向上させる方法はありますか

私はこれを試してみましたが、それは動作しません: compare -metric mse -subimage-search "big.png[50x500+0+118]" "small.png" null:

答えて

3

のはbig.gifを作ってみましょう:

convert -size 1600x1600 xc:yellow -fill black -draw "rectangle 5,130 14,139" big.gif 

enter image description heresmall.gif

convert -size 10x10 xc:black small.gif 

enter image description here

今度は、トリミングされた検索領域を見てみましょう:

convert big.gif -crop 50x500+0+118 x.gif 

enter image description here

だから、あなたが必要とするコマンドは次のようになります

に91秒からの検索時間をダウンさせ
convert big.gif -crop 50x500+0+118 +repage miff:- | compare -metric mse -subimage-search miff:- small.gif null: 
0 (0) @ 5,12 

0.7秒。あなたの本当の問題は難しく、またはより大きな、または複数の操作であれば、あなたは二つに画像を分割して並列に二つの半分を行うことができます

- あなたの求めるサブ画像のサイズによって半分に重なるように覚えている:

convert big.gif -crop 50x260+0+118 +repage miff:- | compare -metric mse -subimage-search miff:- small.gif null: & 
convert big.gif -crop 50x260+0+368 +repage miff:- | compare -metric mse -subimage-search miff:- small.gif null: & 
wait 

これで0.4秒かかります:-)

関連する問題