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)——实践篇之数量识别的主要内容,如果未能解决你的问题,请参考以下文章
javacpp-opencv图像处理系列:国内车辆牌照检测识别系统(万份测试车牌识别准确率99.7%以上,单次平均耗时39ms)