基于MATLAB图像处理的硬币个数识别系统
1、课题介绍
本设计为基于MATLAB的硬币图像识别统计装置,通过数码相机获取平铺无重叠堆积的硬币的图像,并通过Matlab工具处理后统计硬币的数目。通过控制控制数码相机的拍摄实现拍摄—统计—拍摄的过程。在本次试验过程中,通过人为手动摆放硬币,在工业生产应用中可以由MCU实现硬币的传送,上位机实现统计显示。本装置的统计方式为软件识别,与传统的机械清点相比具有速度快,损耗低等特点,目前的缺陷就是清点精度相对比较的低。
2.总体方案设计
2.1 功能模块划分
在实验室实现的过程中检测传送装置可以省略,但考虑到该设计的实用性,再次针对工业生产进行模块设计。
该装置由检测传送控制、图像拍摄、软件处理三部分组成,MCU主要负责硬币的取送,数码相机负责图像的获取;而具体的任务分配及数据处理则由处理能力强大的上位机(PC机)来完成。
总体功能可由下图表示:
- 实验室手动操作:
图3-1-整体功能模块示意图
- 工业生产过程:
图3-1-2整体功能模块示意图
2.2 MCU传送控制流程
装置MCU控制传送的硬币及传送速度,这里主要介绍上位机图像处理部分,下位机的设计就不详细介绍。其与数码相机存在控制通讯接口,逻辑关系如下图所示:
2.3数码相机拍摄
数码相机获取的图片是后续程序处理的基础,所以在得到的图片质量上要有好的保证。比如图像的曝光度,解析度,对比度、色调等,所以有必要调整光照,设定好元件放置处的背景色。其中调整光照可以由MCU一并控制。数码相机的启停可由MCU控制,也可由PC控制,但图片所涉及的数据量大,要求失真度低,图像数据传输通讯接口可采用USB接口。这里使用imaging公司的摄像头和驱动进行上位机VC开发。
3.图像处理
3.1 图像格式转换
取的图像格式为RGB彩色图像,需要先将其转换为8位256级的灰度图像。本程序采用Matlab的图像处理工具箱的函数rgb2gray来实现。
rgb2gray()
功能:
转换RGB图像或颜色映像表为灰度图像。
语法:
I = rgb2gray(RGB)
newmap = rgb2gray(map)