【问题标题】:Compare image ignoring light android比较图像忽略光android
【发布时间】:2023-03-07 06:38:01
【问题描述】:

我对安卓很陌生。我想比较两张图片并忽略比较的灯光效果。

为此,我知道我可以生成边缘图像,然后比较图像。

在这种情况下我该怎么办?如何在 android 中做到这一点,如果有任何库可用,如何使用它?

我进行了很多搜索并开始了解 Jmagick 和 Imagemagick,但我不知道如何在我的应用程序中使用它们。

我必须为我的应用程序提供运动检测功能。平板电脑将连接到墙上,它基本上会收集用户的评论,广告将显示为幻灯片。前置摄像头将每 10 秒拍摄一次照片,并将之前拍摄的图像与当前图像进行比较,以查看是否有任何变化(即至少有人正在观看广告)。根据结果​​,如果 20 分钟内没有检测到运动,我想关闭我的平板电脑屏幕。

请帮帮我。

【问题讨论】:

  • 这在很大程度上取决于您要比较的图像。如果您采用边缘比较的路线(仅此一项就很容易产生不好的结果),您也忽略了您拥有的所有颜色信息。那么,您比较的是哪种图像?包括有代表性的例子和你期望的结果。
  • @mmgp 谢谢你的回复!我已经编辑了帖子,如果您需要任何进一步的信息,请询问我。
  • 这里有很多基于相同要求的问题。你读过其中的任何一个吗?
  • 那么首先你要学会如何使用它。但是,看起来你已经准备好了功能。在这种情况下,OpenCV 将比 Jmagick 更适合此类任务。
  • 是的,opencv 有一个安卓版本,是你描述的最好的工具。

标签: android opencv image-processing edge-detection jmagick


【解决方案1】:

如果您要继续使用 OpenCV,您的实施应取决于允许的运动量。使用光流的方法可以告诉您相机是否在移动。您可以将运动幅度的总和作为阈值。如果您希望相机能够在不触发运动检测的情况下移动一点,我会推荐一种基于特征的方法,例如 SURF。您可以使用与原始图像匹配的数量作为移动的阈值。无论哪种方式,请查看 matcher_simple.cpp 和 simpleflow_demo.cpp 以获取入门指南。

【讨论】:

  • 感谢 Radford Parker 的回复。我在android中使用openCV。但我需要在我的 android 设备中安装 openCV 管理器。那么有必要安装吗?如果有必要,我怎样才能让它与我的应用程序文件一起安装?我不希望它单独安装。
  • 哦,我通过 OpenCV 文档中提到的静态初始化得到它。
猜你喜欢
  • 2013-01-04
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多