首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么方法可以提高子图像搜索的性能吗?

有什么方法可以提高子图像搜索的性能吗?
EN

Stack Overflow用户
提问于 2017-02-09 18:34:15
回答 1查看 349关注 0票数 1

我有一张1600x1600px的大图和一张50x50px的小图。运行测试大约需要3分20秒。小图像预计仅在50x500px的区域内出现在大图像中。

我试过了,但不起作用:compare -metric mse -subimage-search "big.png[50x500+0+118]" "small.png" null:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-09 21:49:09

让我们做big.gif

代码语言:javascript
复制
convert -size 1600x1600 xc:yellow -fill black -draw "rectangle 5,130 14,139" big.gif

small.gif

代码语言:javascript
复制
convert -size 10x10 xc:black small.gif

现在让我们看看裁剪后的搜索区域:

代码语言:javascript
复制
convert big.gif -crop 50x500+0+118 x.gif

因此,您需要的命令是:

代码语言:javascript
复制
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秒。

如果你的实际问题更难,或者更大,或者更紧迫,你可以将图像一分为二,并行地做两半-记住按照你寻找的子图的大小来重叠这两半:

代码语言:javascript
复制
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秒:-)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42134307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档