基于DSP的嵌入式智能相机的研究
2.2 OpenCV
OpenCV(Open Source Computer Vision Library)是一个基于开源的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python,Ruby,Matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV提供的视觉处理算法非常丰富,并且它部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持也可以完整的编译链接生成执行程序,所以用它来做算法的移植很方便,OpenCV的代码经过适当改写可以正常的运行在DSP系统和单片机系统中。OpenCV主体分为5个模块,其中4个模块如图5所示。OpenCv的CV模块包含基本的图像处理函数和高级的计算机视觉算法。ML是机器学习库,包含一些基于统计的分类和聚类工具。HighGUI包含图像和视频输入/输出的函数。CXCore包含OpenCV的一些基本数据结构和相关函数。
2.3 程序设计流程
相机通过RS 232串口把编译好的U_Boot和μCLinux镜像文件烧写到里面的FLASH中,然后通过Eclipse集成开发环境进行应用软件设计。本设计实现了一个简单的应用,可以通过智能相机来检测条形码。流程图如图6所示。
在图像处理模块中,主要包含了图像图像预处理,分析条形码黑白条宽度,判断条形码类别,最后识别出条形码并且显示条形码数据,流程框图如图7所示。
3 实验结果及分析
下面4张图为在四种不同的速度情况下检测的条形码样本,它们是在相同的外界环境(光源、曝光时间等)下检测。图8是在单帧图片下的检测,图9是在15f/s的速度下检测,图10则是在20f/s的速度下检测。在三种情况下分别对100个条形码进行检测,图11是在30f/s的速度下进行检测。表2为检测结果。
由表2可知,在低速(即在15f/s以下)时,相机能够对条形码进行正确的检测,随着速度的增加,检测的合格率会逐渐的下降。
4 结语此智能相机的设计是以ADSP-BF537为处理控制核心,结合Oscar框架和OpenCV视觉库而实现的。通过一个简单的检测条形码的应用程序可以看出,在检测速度不高的情况下,此智能相机能够准确地检测产品,并且操作简单,能够广泛地应用到生活和生产实践中。
- 基于DSP的数码望远相机的研究与设计(03-28)
- 基于DSP的数码相机中的MPEG-4压缩方案设计(03-24)
- DSP在数码相机中的MPEG-4压缩方案(04-10)
- 供应如何清洗工业相机CCD?(12-20)
- 浅谈工业相机镜头的参数与选型(12-20)
- 什么是工业智能相机?(12-20)