我正在尝试创建自己的应用,我需要比较两张图片。
一些澄清。
图片将包含写在纸上的符号。
我将在纸上贴上带有原始符号的“原始”图片。
我需要将新捕获的符号图片与原始图片进行比较,并确定它们是否都是相同符号的同一图片。
新捕获的符号图片可以从其他角度拍摄。
我查看了OpenCV和Google Vision,但在操作方法上有些迷茫。
我的问题
我有这样的“原始”图片 Original picture
我新捕获的图片上带有相同的符号,但是是从不同的角度拍摄的,例如comparing image
我需要确定它们是“相同”(相似)还是不同。
谢谢。
答案 0 :(得分:0)
OpenCV支持几种比较两个图像以及这些图像有多“相似”的方式。这些方法包括比较直方图,模板匹配和特征匹配。
比较直方图的方法 cv2.compareHist()
可能是最简单,最快的方法,但是有时可能过于简单和不准确。另一种方法是模板匹配 cv2.matchTemplate()
,它将“模板”搜索图像与目标图像进行比较。该方法对于具有相似大小和方向的相同图像效果很好,但对于成角度的图像可能无效。 特征匹配方法可能是最有效的方法之一,因为提取的特征可用于确定图像之间的相似性。可以针对旋转或缩放的目标识别这些特征,因为很高的相似度暗示着相同的对象。此类别可以进一步分为纹理描述符(HOG,LBP,Haar)和关键点描述符(SIFT / SURF)。
对于您的应用程序,我将研究模板或功能匹配,因为您的图像可能随角度而变化。