【问题标题】:Comparing images using OpenCv or something more useful使用 OpenCv 或其他更有用的方法比较图像
【发布时间】:2016-10-05 02:19:13
【问题描述】:

我需要比较一个项目中的两个图像, 这些图像将是同一种水果的两个水果 - 假设两个不同苹果的两个不同图像 -

为了更清楚,数据库将包含苹果从从树上采摘到腐烂的各个阶段的图像。

用户将上传他们拥有的苹果的图像,软件应将其与数据库中的所有图像进行比较,并检索匹配图像的数据并告诉用户它处于哪个阶段......

我之前确实比较过使用 OpenCv emgu 的图像,但我真的不太了解它是否是最好的方法......

我需要专家建议我在项目中所说的是否可能?或整个数据库图像'将匹配用户的图像! 这是“图像处理”还是其他? 是否有任何建议的教程来学习如何做到这一点?

我知道这似乎还不完全清楚,但这只是一个疯狂的想法,我希望我能找到一种方法来更多地了解如何将它变为现实!

注意,该项目将是一个 android 应用程序

【问题讨论】:

  • 你项目的实际目标是什么?在我看来,您不是比较图像,而是对检测苹果的腐烂阶段(或沿着这条线的东西)感兴趣。如果是这样,我会决定相当有限的阶段,并为每个阶段收集一个具有统计意义的图像样本(这可能是数百个),然后开始分析它们的不同特征,这些特征可能是用于对它们进行分类。
  • 是的,这正是我的想法,但在我深入了解项目之前,我想知道我应该使用什么来比较图像,以及它是否会起作用或只是浪费时间和精力..
  • 这听起来像是一个有趣的想法,但它似乎是一个相当小众的主题(和一个非常广泛的问题)。我不希望对此有具体的答案,我希望这将是一个涉及研究和实验的长期项目。这实际上取决于您如何定义问题。你可以寻找干瘪的苹果(与光滑的苹果相比)——也许是某种频率分析?使用色调来检测棕色或黑色腐烂区域?某种针对结痂的特征检测(或再次基于色调)?也许特征检测可以找到真菌感染的白点?
  • 另外,在事情的范围内,我不会真正担心 Android 或特定平台。专注于检测算法并在一些舒适的平台(可能是桌面)上开发它。之后将其移植到另一个平台应该是相当简单的。

标签: opencv image-processing emgucv image-comparison


【解决方案1】:

这是一个监督图像分类问题的例子,这是一个相当广泛的领域。您可以阅读图像分类here

解决这个问题的方法是定义几个腐烂阶段(新鲜、开始腐烂、半腐烂、完全腐烂),将每个阶段的许多水果图像数据集放在一起,然后训练每个阶段都有一个图像分类器。样本数据集应包含许多不同设置中的许多不同水果的图像。如果要支持不同类型的水果,则需要为每种水果训练不同的分类器。

市面上有许多图像分类工具。仅举几例:
OpenCV's haar classifier
dlib's hog classifier
Matlab's Computer Vision System Toolbox
VLFeat
您可以自行决定哪种方法最适合您的情况。

鉴于这是一个相当广泛的问题,除非您有图像分类方面的经验,否则我不会期望很快找到可靠的解决方案。如果您正在尝试开发产品,我建议您与computer vision expert 联系,您可以签约解决它。

不过,如果您只是想了解更多有关图像分类的信息,那么这可能是一种有趣的方式,可以使用不同的工具并了解其中的内容。您可能想从总体上了解机器学习开始。加州理工学院提供了一个free online course,它对该主题进行了很好的介绍。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2017-06-07
    • 2015-06-14
    相关资源
    最近更新 更多