我正在尝试创建自己的应用程序,我需要比较两张图片。
一点澄清。
我查看了OpenCV和Google Vision,但我有点失落,关于如何做到这一点。
我的问题
我有这样的“原始”图片
我新拍摄的照片上面有相同的符号,但是从不同的角度拍摄,就像这样
我需要确定它们是否“相同”(相似)或它们是不同的。
预先感谢。
OpenCV有几种方式支持两个图像的比较以及这些图像的“相似”程度。这些方法包括比较直方图,模板匹配和特征匹配。
比较直方图cv2.compareHist()
的方法可能是最简单和最快的方法,但它有时可能过于简单和不准确。另一种方法是模板匹配cv2.matchTemplate()
,它将“模板”搜索图像与目标图像进行比较。此方法适用于具有相似大小和方向的相同图像,但对于有角度的图像可能无效。特征匹配方法可能是最有效的方法之一,因为提取的特征可用于确定图像之间的相似性。由于高比例的相似性意味着相同的对象,因此可以针对旋转或缩放的目标识别这些特征。此类别可以进一步分为纹理描述符(HOG,LBP,Haar)和关键点描述符(SIFT / SURF)。
对于您的应用程序,我会查看模板或功能匹配,因为您的图像可能会因角度而异。