【问题标题】:Android : Camera view comparison with stored imageAndroid:相机视图与存储图像的比较
【发布时间】:2012-08-20 22:27:44
【问题描述】:

已经讨论过如何比较两张图片,“计算”它们之间的差异。这可以看作是图像比较的一种变体,但不完全是。 考虑一下: 假设我有一支笔的图像,存储在我的手机(Android 手机)的 SD 卡中。而且,我正在用我的相机在家里“寻找”这支笔。让我们忽略我的眼睛可以做同样的事情,让相机进行搜索。所以,我在家里,把相机对准不同的地方,看看我的相机是否能“识别”这支笔,当我把相机对准它时。 用模糊的计算机科学术语来说,当我将相机对准东西时,我有一个线程在后台运行,以不断地将这支笔的图像与当前的相机视图进行比较。我将相机对准椅子,线程将椅子的相机视图与笔的图像进行比较,由于椅子不是笔,因此返回“false”。 当我最终将它指向放在桌子上的同一支笔时,线程应该确定这是我们在 SD 卡上的图像的笔。因此,Camera View 现在会显示笔以及它所在的桌子,但它应该使用图像比较技术来识别笔。

一般来说,这样的事情可能吗?忘记 Android 或智能手机,是否可以用摄像头“识别”一个区域或对象?由于对图像处理库一无所知,我只能假设某些库确实有工具来做这些事情。或者至少,可能有一个“理论”算法可以开始研究。

谢谢,

桑吉夫 Mk

【问题讨论】:

  • 不错的分析,为它+1,但它为什么与问题标题匹配?
  • 你所描述的很难做到。因为比较两个图像以查看它们是否相同很难,但在某种程度上可以使用 OpenCV 库。然而,从远处这样做,而且任何距离都非常困难。在我看来,您找到正面匹配的机会将非常低。完全不相关的标题是怎么回事?
  • 对于标题的事情非常抱歉!这是一个错误,我正在处理它,并且不小心在 StackOverflow 选项卡中输入了它。现在编辑它。给您带来的不便,我们深表歉意。

标签: android image image-processing graphics


【解决方案1】:

这种事情是可以做到的,但要让它运转良好是非常非常困难的。我在 Android 上处理 OpenCV 的经验是,用当前的移动硬件实时执行此操作是不可能的。 (使用静止帧可能是可行的)

一个非常粗略的(最简单的)系统会使用模板匹配cvMatchTemplate。本质上,您将“模板”(例如您的笔的照片)与搜索图像中每个可能位置的照片进行比较。它是计算密集型的,但在受约束的情况下工作得很好,但是您的应用程序需要完全不受约束的条件。

我的建议是查看 Surf 或类似的东西以及 Hough 变换。您通过从参考图像中在对象上生成一组 SURF 特征来制作对象的“指纹”。您在搜索图像上运行 surf。然后应用广义霍夫变换,其中对象模型是一组特征点。霍夫空间中的峰代表良好的匹配。

我什至从未尝试过第二种方法,但我知道这是可能的。另外我提出的两种方法也绝不是仅有的两种,它们只是我熟悉的两种。

【讨论】:

    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2020-09-13
    • 1970-01-01
    相关资源
    最近更新 更多