繁体   English   中英

使用opencvsharp3进行图像匹配

[英]Image Matching using opencvsharp3

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

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

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

这样的算法有效吗?

编辑:

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

在此处输入图片说明

它可以有效,但:

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

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

它不是很健壮,如果在像素数量较多的图像上尝试,会附加什么? 是否已经对图像进行了色彩调整? 如果是灰度的?

我建议您使用机器学习来解决此问题。 我将这样进行:

  1. 制作图像数据集
  2. 对于每个图像,进行数据扩充(进行所有可能的旋转,位移,噪声)。
  3. 使用CNN并对其进行训练,以将图像的每个变化识别为同一图像。
  4. 完成后,您就有一个算法来完成这项工作:)

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

对于使用MNIST CNN的简单实现, 请参见此处

这是一个视频,解释了CNN的工作原理(查看功能检测和池化操作,它可以为您提供帮助)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM