我需要一个比较两个扫描图像的解决方案。 我有一张申请表(未填写)的图片,我需要将其与同一表格的其他图片进行比较,并想检测是否有任何完全未填写的申请表。
我刚试过Emgu CV AbsDiff,MatchTemplate等,但是没有一个给我100%的匹配,即使我在同一台扫描仪上扫描了两次相同的表格,可能是因为扫描中的噪音,我可以应用容差但问题是我需要找出用户是否填写了任何内容。如果我应用公差,则不会检测到表格中的微小变化。
我还看过Python Image Libray,Accord.Net等,但是找不到比较这种类型图像的方法。
有关如何进行此类图像比较的任何建议吗? 有没有免费或付费的图书馆?
答案 0 :(得分:1)
仅检查表单字段。没有分心,更容易发现微小的变化。您也不必检查每个像素。使用直方图或平均颜色。我用过SimpleCV:
from SimpleCV import *
form = Image("form.png")
form_field = form.crop(34, 44, 200, 30)
mean_color = form_field.meanColor()[0] # For simplicity only red channel.
if mean_color < 253:
print "Field is filled"
else:
print "Field is empty"
或者寻找功能。例如。角落,斑点或关键点。关键点将忽略噪声,并且在扫描不良时效果会更好:
key_points = form_field.findKeypoints()
if key_points:
print "Field is filled"
key_points.show(autocolor=True)
else:
print "Field is empty"