很高兴和大家分享一下我自己使用OpenCV识别一定区域内数字的方法,只是一次尝试,请各位大神多指点哈。
我们经常需要从一个感兴趣的区域截取图像,对这个区域的内容进行处理。比如下面的图片,我们希望根据类似二维码定位标记确定需要识别的数字的范围。
找到这个区域必须找到它的特征,比如轮廓的层次,区域的面积大小,矩形的长宽比。这样就可以从图片中筛选出感兴趣的区域。
首先要制作数字模板用来和需要识别的图片进行对比。这里没有进行训练而是与所有数字对比,找到最接近的数字模板,我们就认为它是对应模板的数字。
读取标准的灰度图像,进行二值化。需要用到下面的函数。
<span style="font-size:18px;">double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)</span>
对得到的图像进行切割,截取出包围数字的最小矩形,这个就是单个数字的模板。