一、总体项目流程:
1、需求分析:一个项目主要包含
·1)定位(①Blob分析(主要包括二值化、形态学处理、特征选择,受光照影响较大)、②模板匹配)、识别;
2)缺陷检测
3)OCR字符识别
4)测量类的项目这四个大方向
2、方案设计:根据客户应用的场合不同,选择相应的镜头、相机、支架、光源及如何打光等
3、概要设计:软件架构体系,vc++联合halcon还是c#联合halcon等,还有算法流程,怎么通讯、怎么识别等
4、详细设计:每一个功能模块怎么做,包括图像采集模块、处理模块、包括算法模块,如何通讯等。通常将每个模块形成一个动态库,调用相应的接口函数即可,项目图像采集调用SDK也是调用动态库的过程。
5、常见的视觉项目中图像处理框架:
1)采集图像
2)图像预处理:滤波、二值化等处理以克服图像干扰。
3)形态学或特征处理(深度学习的话,后面还要加上训练、识别)
4)显示
6、调试
7、测试、修改
8、交互给客户,让客户按照合同中的技术指标执行(给用户写文档)
9、维护
相机、镜头、光源的选型及打光也就是上面项目流程第二步方案设计的内容,这里推荐一本书《工程光学》,讲的比较详细。
二、具体项目流程:
一)定位识别项目
1、采集
2、图像预处理:对采集到的图像进行(几何变换)、灰度化、图像增强(gray_range_rect—使图像亮的地方更亮,暗的地方更暗)、滤波、二值化、细化等
3、定位(blob分析、模板匹配)
4、特征提取: 有形状特征、纹理特征、概率特征、角点、特征描述算子特征等,直接影响定位、识别的效果
5、识别
6、显示