使用 OpenCv 或更有用的东西比较图像

Comparing images using OpenCv or something more useful

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

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

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

我确实比较过之前使用 OpenCv emgu 的图像,但我真的不知道这是不是最好的方法...

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

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

N.B 该项目将是一个 android 应用程序

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

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

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

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

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