Open CV 中的 2D 子图像检测
对于以下问题,使用 OpenCV 的最明智的算法或算法组合是什么:
- 我有一组小型 2D 图像。我想检测这些子图像在较大图像中的位置。
- 子图像通常约为 32x32 像素,较大图像约为 400x400。
- 子图像并不总是正方形,并且包含 Alpha 通道。
- 可选 - 较大的图像可能是颗粒状的、压缩的、3D 旋转的或其他轻微扭曲的。
我尝试过 cvMatchTemplate,结果非常差(很难正确匹配,并且使用所有匹配方法都会出现大量误报)。一些问题来自 OpenCV 似乎无法处理 alpha 通道模板匹配这一事实。
我尝试过手动搜索,似乎效果更好,并且可以包含 Alpha 通道,但速度很慢。
感谢您的任何帮助。
What's the most sensible algorithm, or combination of algorithms, to be using from OpenCV for the following problem:
- I have a set of small 2D images. I want to detect the locations of these subimages in a larger image.
- The subimages are usually around 32x32 pixels, and the larger image is around 400x400.
- The subimages are not always square, and such contains alpha channel.
- Optionally - the larger image may be grainy, compressed, rotated in 3D, or otherwise slightly distorted
I have tried cvMatchTemplate, with very poor results (difficult to match correctly, and large numbers of false positives, with all match methods). Some of the problems come from the fact OpenCV can't seem to deal with alpha channel template matching.
I have tried a manual search, which seems to work better, and can include the alpha channel, but is very slow.
Thanks for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要的是 SIFT 或 SURF 之类的东西。
What you need is something like SIFT or SURF.