【问题标题】:Image Matching using opencvsharp3使用 opencvsharp3 进行图像匹配
【发布时间】:2017-12-06 03:27:02
【问题描述】:

我是 OpenCVSharp3 的新手,我一直在看一些使用此库进行图像匹配的示例。

我的问题的关键是,我不知道来自 question 的代码需要进行什么样的修改来比较两个几乎 100% 相同的图像,但其中一个是旋转的(无限旋转),有时稍微偏离源(一些像素)。

此类问题的方法基本上是比较一张图片是否在另一张图片中,但我的项目只需要比较 5 张相同大小的图片,其中两张相同,略有不同。

这样的算法有效吗?

编辑:

这是一个检测相同图像的 5 个图像的示例:

【问题讨论】:

    标签: c# opencvsharp


    【解决方案1】:

    它可以是有效的,但是:

    1. 如果您想要无限旋转,则必须将您的参考图像与旋转的其他图像的无限组合进行比较。
    2. 如果您的其他图像从源中置换出来,您将必须生成所有可能的置换图像。
    3. 如果你把这两种技术结合起来,你会有很多组合。

    所以是的,可以为一张图像生成所有可能的不同图像,并将它们与您的参考图像进行比较。

    它不是很健壮,如果您在具有大量像素的图像上尝试它会附加什么?如果对图像进行了颜色调整?如果一个是灰度的?

    我建议您使用机器学习来解决这个问题。 我会这样处理:

    1. 制作图像数据集
    2. 对每张图像进行数据增强(使所有旋转、位移、噪声成为可能)。
    3. 使用 CNN 并对其进行训练,以将图像的每个变体识别为同一图像。
    4. 你已经完成了,你有一个可以完成这项工作的算法:)

    这里是 C# 的 tensorflow 实现 https://github.com/migueldeicaza/TensorFlowSharp

    用python简单实现MNIST CNN see here

    Here一个解释CNN如何工作的视频(看看特征检测和池化操作,它可以帮助你)

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 2019-10-29
      • 1970-01-01
      • 2015-09-17
      • 2022-08-17
      • 2014-12-18
      • 1970-01-01
      • 2021-01-22
      相关资源
      最近更新 更多