OPENCV系列(14)——实践篇之数量识别

Posted 嵌入式人生之FPGA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OPENCV系列(14)——实践篇之数量识别相关的知识,希望对你有一定的参考价值。

经过2017年下半年的学习,基本把OPENCV基础模块和扩展模块的架构跑了一遍,相关算子弄了一遍。

2018年开始,准备去弄HALCON,但是多次权衡下,还是准备继续弄OPENCV。
原因:OPENCV开源免费,对于简单应用足够,适用于成本低型产品。同时可以在其基础上,添加个人算法,构造个人的图像处理库!


本次深入OPENCV,以实际问题为切入点,再慢慢结合公司具体项目,真正掌握OPENCV开发。


一、实际问题——数量识别






二、算法思路


二值化+形态学变换+距离变换+连通域数目计算


二值化:常用THRESH_OTSU和THRESH_TRIANGLE。

该实际问题选择THRESH_TRIANGLE。

THRESH_OTSU针对于图像黑白分明效果很好,比如用扫描仪扫描的一个带文字的图像,没有光照的差异,黑白分明。


形态学变换:腐蚀程序不要太大


距离变换:距离变换后,重新进行二值化时,采用局部自适应阈值(高斯),不要采用全局阈值。


连通域:寻找参数使用CV_RETR_EXTERNAL获取最外层轮廓。


三、代码与深度思考

代码略

思考:如果重叠情况更为复杂,如下图,该方法是否还能实现呢?










以上是关于OPENCV系列(14)——实践篇之数量识别的主要内容,如果未能解决你的问题,请参考以下文章

OpenCVSharp4 识别物体系列之预处理

OpenCV实践之路——人脸识别之二模型训练

OpenCV之识别自己的脸——C++源码放送

javacpp-opencv图像处理系列:国内车辆牌照检测识别系统(万份测试车牌识别准确率99.7%以上,单次平均耗时39ms)

openCV实践项目:银行卡卡号识别

ROS+opencv实践-二维码识别