2017-02-09 107 views
1

我有一個1600x1600px的大圖像和一個50x50px的小圖片。大約需要3分20秒來運行測試。預計小圖像只會在50 x 500像素的區域內出現在大圖像內。有沒有什麼辦法可以提高-subimage搜索性能

我試過,但它不工作: 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

所以,你需要將下面的命令:

convert big.gif -crop 50x500+0+118 +repage miff:- | compare -metric mse -subimage-search miff:- small.gif null: 
0 (0) @ 5,12 

這使搜索時間91秒下調至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秒:-)

相關問題