1
我有一個1600x1600px的大圖像和一個50x50px的小圖片。大約需要3分20秒來運行測試。預計小圖像只會在50 x 500像素的區域內出現在大圖像內。有沒有什麼辦法可以提高-subimage搜索性能
我試過,但它不工作: compare -metric mse -subimage-search "big.png[50x500+0+118]" "small.png" null:
我有一個1600x1600px的大圖像和一個50x50px的小圖片。大約需要3分20秒來運行測試。預計小圖像只會在50 x 500像素的區域內出現在大圖像內。有沒有什麼辦法可以提高-subimage搜索性能
我試過,但它不工作: compare -metric mse -subimage-search "big.png[50x500+0+118]" "small.png" null:
讓我們big.gif
:
convert -size 1600x1600 xc:yellow -fill black -draw "rectangle 5,130 14,139" big.gif
convert -size 10x10 xc:black small.gif
現在讓我們來看看裁剪搜索區域:
convert big.gif -crop 50x500+0+118 x.gif
所以,你需要將下面的命令:
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秒:-)