2.2 软件工作流程
程序上电开始运行后,首先对各模块进行初始化设置,包括VP1、VP2、TVP5150A、SAA7104、McBSP等,之后在一个DSP/BIOS系统任务对象中进行图像捕捉,捕获的图像数据将存放在FVID提供的一个FVID_Frame结构中,以后对于图像的处理都是针对该结构中的图形数据进行。将获得的图像首先进行二维码识别和定位,采用模式识别的方法,判断该次采集的图像是否含有二维码信息,是否需要进行二维码识别处理。如果含有二维码信息,则进入二维码识别模块进行识别,并输出到LCD显示器以及通过McBSP发送二维码信息。
其中,DSP/BIOS系统任务对象是被TSK模块管理的线程。其任务的优先级高于空闲循环,低于硬件和软件中断。TSK模块根据其任务的优先级和当前的执行状态动态地调度和抢占任务。DSP/BIOS总共有15个任务优先级可用,最低的优先级是保留给空闲循环的。为此,在设计中使用了TI的DSP/BIOS配置工具对TSK模块进行配置,建立系统任务tskLoopback用于视频采集和图像分析循环。系统程序的流程如图5所示。
2.3 图像处理程序
在图像处理程序部分,要得到准确的解码信息,必须包含两个关键组成部分:二维数据矩阵码的定位和二维码解码,本设计只对Data Matrix二维码进行解码。
在图像定位方面,Data Matrix二维码自身包含了大量的定位查找信息。图6所示为一个Data Matrix二维码图像,可以看出在二维码图像的底部有一条黑色水平条,而左边界处有一条黑色垂直条,其宽度均为一个有效1的宽度,在图像的右上方为数据编码图像区域,而整个图像外四周还有一个宽度为一个有效1像素4倍的白色连续区域,程序中用这些信息定位二维码图像,确定二维码图像的方向。
在程序中,首先获取一个完整的Data Matrix二维码图像作为以后识别和解码实时动态图像的模板。对于作为模板的图像,选择整个二维码图像区作为模板的训练区域,通过图像坐标的变换将其训练为以后在实时图像中定位二维码图像的模板。之后,设置定位时模式识别的一些参数,包括旋转角范围、比例缩放范围、图像灰度级别等,当模板和定位工具配置好时,就通过CCD相机实时地获取图像进行定位和识别。对于一个实时进来的图像,首先使用定位工具进行二维码图像定位,如果定位成功则此图像中包含二维码图像信息,如果定位返回不成功标志,则不进行下一步,直接再次申请图像。对于包含二维码信息的图像,在定位工具给出的图像位置,按照定位工具给出的图像像素尺寸数值,读取原始二进制码流,再根据Data Matrix的编码规则对二进制码流进行解码,获取相应的字符串进行显示和传输。
本文详细阐述了基于TMS320DM642的CCD二维码Data Matrix读码器的设计,包括了硬件和软件的系统设计。按照此设计方案设计的读码器结构简单,实现简便,二维码识别率很高。
参考文献
[1] 张琛,赵昕,郭娟,等.基于TMS320DM642芯片的图像编 码系统设计[J].微机算计信息,2005,21(4):113-114.
[2] 王新栋,高宏昌,万里青.基于DM642的H.264视频压缩系统设计与优化[J].电光与控制,2008,15(01):82-85.
[3] 李斌,李功燕,许世颐,等.DSP体系结构下视觉监控优化方法研究[J].计算机工程与应用,2008,44(34):231-233.
[4] 干戈.一种基于DSP和USB的图像处理系统设计[J].计算机与数字工程,2008,36(11):149-150.