在OpenCV里实现扑克牌识别3

在前面使用两个图像相减的差值来识别,在识别的结果里,发现有时候识别错误率很高,那么就需要想办法来改善这种情况。首先来分析一下,为什么图像相减识别的错误率会这么高?如果仔细地分析它们的相减之后的图片,就会发现这样一个问题,当拍摄的扑克牌与库里的牌有角度的差异时,投影变换回来的图像,它们之间显然有像素的差别,导致数量不一样,这样相减就会有影响最后计算像素的个数了。因此,这种切变的特性导致这种方法识别率不高的原因。

 

有了这个认识之后,就好解决了,接着下来就是找到一种方法,可以让切变的图片也不影响判断。通过前面的特征学习,发现角有旋转等不变性,因而就可以采用前面的ORB特征方法,把每张牌的特征计算出来,最后把要识别的牌的特征也计算出来,这样来比较它们的特征值来判断图片是相似。

 

下面就来例子说明怎么样计算牌的ORB特征:

这张牌,就是经过平滑和二值化之后,再进行计算1500个特征值显示出来的效果。同理可以计算其它的牌:

猜你喜欢

转载自blog.csdn.net/caimouse/article/details/103592695