模板匹配与文档图像校准的特征匹配

时间:2015-08-30 20:25:04

标签: image opencv pattern-matching emgucv document-classification

要对大量各种文档图像进行分类,通常使用两种方法。 为了获得更好的性能,这些方法使用了GPU编程。

第一种方法:基于模板

在该方法中,从图像中提取固定图案,并将其他图像与其进行比较。 如果相似度大于阈值,则图像将被正确分类。

代码:

GpuInvoke.MatchTemplate(source, template, imageresult, `Emgu.CV.CvEnum.TM_TYPE.CV_TM_CCOEFF_NORMED, IntPtr.Zero, IntPtr.Zero);`
  

第一种方法的问题:

     

旋转超过10度时,此方法不是不变的。该   图像中选定的图案可能会被破坏。 (例如,损坏   冲压文件造成的。)如果图案太多,那就是   表现有所降低。

第二种方法:基于图像功能

以这种方式选择的图像的某些点可以抵抗这些变化。 如果在另一个图像中存在类似的点,则对图像进行分类。

代码:

GpuBruteForceMatcher matcher = new GpuBruteForceMatcher(GpuBruteForceMatcher.DistanceType.L2);

matcher.KnnMatch(gpuObservedDescriptors, gpuModelDescriptors, gpuMatchIndices, gpuMatchDist, 2, null);
  

第二种方法的问题:

     

其他图像中存在具有相同特征向量的类似区域。这个   方法有大假阳性结构的小变化   文件使类似的点被销毁。

第一种方法具有高精度,但对于表征,效率较低。 第二种方法精度较低,但找到合适的斑点具有高性能算法。

问题:

要实现最佳准确性和效率,请关注哪种方法? 有没有更好的方法来分类文档图像?

考虑:

由于文档图像的分辨率为每英寸100个点,因此使用基于轮廓匹配和OCR的方法是没有用的。 我们使用OpenCV或Emgu_CV库进行图像分类。 图像可以旋转10度以上。

样品:

sample1

sample2

0 个答案:

没有答案