基于嵌入式Linux图像采集恢复和应用
出处:微计算机信息 发布于:2009-07-21 16:56:24
摘要:本文首先介绍针对S3C2410芯片和Linux操作系统平台扩展的USB图像采集模块的软硬件和RGB图像数据流的采集;然后在嵌入式Linux平台上实现RGB流转换成BMP格式的图片;通过网络把图片传送到远程终端上运用Matlab7.1进行处理,实现对加工零件远程检测。
1.引言
随着后PC时代的到来和嵌入式的蓬勃发展,运用嵌入式系统实现远程数据采集已成为社会需求的趋势。本文采用嵌入式系统采集图像数据实现加工零件的远程测量,代替传统的人工检测。其特点有:网络化,准确性高,节约人力和物力。
2.系统软硬件平台
由于嵌入式设备资源有限,所以在开发嵌入式系统的软件部分需要在宿主机平台上实现,运用宿主机的资源编译目标机平台上可运行的软件。本文系统的宿主机平台:Redhat 9.0,交叉编译环境:ARM-Linux-Gcc;目标机平台:UBOOT 1.1,Linux 2.4.18 和YAFFS 根文件系统。
系统硬件平台的处理器采用 Samsung 公司的集成有ARM920T 内核的处理器S3C2410,该处理器资源丰富,具有16KB 的指令Cache 和16KB 数据Cache、MMU 虚拟存储器管理器、LCD 控制器、支持NAND Flash 系统引导,RAM 控制器、3 通道UART、4 通道DMA、4通道带PWM 定时器、RTC、并行I/O 口、8 通道10 位ADC、触摸屏接口、IIC 接口、IIS接口、2 个USB 接口控制器、2 通道SPI 及内部PLL 时钟倍频器,主频可达203MHz。此外,在处理器丰富资源的基础上还进行了相关的配置和扩展,配置了64MB 的Flash 和64MB 的SDRAM,并引出了两个HOST USB 接口。在USB 接口上外接带USB 口的摄像头Webeye V 2000。嵌入式Linux 操作系统上建立图像采集和图像恢复两个软件模块。开发板拥有CS8900A-CQ3 芯片,具有10~100M 自适应的网络通信能力。通过它实现图像数据的远程传输。整个系统的硬件概图如图1 所示:
图1 系统硬件结构图
3.RGB数据流的采集
Webeye V 2000摄像头内部拥有ov7620、ov511和一个存储芯片。由于Linux操作系统中嵌有ov511芯片的驱动,故在编译Linux操作系统时需要加载ov511驱动,主要步骤:
①(*)选择Multimedia device->下的Video for linux。加载video4linux模块,提供了编程接口;
②在usb support->目录下(*)选择support for usb和usb camera ov511 support。加入了对采用ov511接口芯片的USB数字摄像头的驱动支持。
在嵌入式Linux操作系统平台上驱动摄像头,通过Video4Linux接口控制摄像头参数、图片的格式和窗口大小等等。Video4Linux是Linux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供一系列接口函数。USB口摄像头驱动程序中需要提供基本的I/O操作接口函数open、read、write、close的实现。对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioctl的实现等,并把它们定义在struct file_operations中。本系统采用内存映射法,即mmap()方式截取图像或视频数据。mmap()函数调用使得进程之间通过映射同一个普通文件实现共享内存。该映射内容区可读可写并且不同进程间可共享,不需要任何数据的拷贝。
函数,它在用户程序中用来控制I/O通道,其中,fd代表设备文件描述符,cmd代表用户程序对设备的控制命令,省略号一般表示类型长度的参数, 也可没有。
4. 图像的恢复
上一节已经介绍了系统采集RGB图像数据流。为了满足用户观看采集的图像数据和相应测试,故需要将RGB流转换成在Linux系统和Windows系统下都可以浏览的BMP格式的图片。BMP格式的图片分为文件描述区和图像存储区两部分。头文件信息中又包含了信息区和调色板区两部分,信息区又可以细分为文件信息区和图像信息区两部分。恢复BMP图片的关键是首先手动生成BMP文件的头文件,然后将采集到的RGB数据流填充到BMP文件的数据区。拍摄的物体为加工好的环行零件,检验其加工是否合格,中心点位置等等。以下将介绍BMP文件的数据结构和头文件,图片恢复如图2所示:
5. 图像的传输和处理
系统采用网络(FTP)方式读取BMP 文件。远程终端建立FTP 服务器,实现系统和FTP 服务器的连接建立,将BMP 文件放置到服务器上,具体命令:FTP open 服务器的IP 地址Put 命令将bmp 文件放到FTP 服务器上终端可以通过网络获得FTP 服务器上的BMP 文件,终端上安装Matlab7.1 应用程序,运用Matlab7.1 做图像处理,从而得到对加工零件的中值滤波,边缘检测,二值化和中心点的坐标,查看零件合格。具体命令和结果如下:
下面是中心点坐标的提取命令:
6.结束语
本文基于嵌入式平台的实现了图像采集软硬件,RGB 图像数据流向BMP 文件的转换和图像的处理(中值滤波,边缘检测,二值化和中心点的坐标)。实验结果证明:网络化检测加工零件准确性高,节约人力和物力。为今后完成机械手定位打下一定基础。
本文作者创新点: 嵌入式Linux平台集成图像采集软硬件,RGB流和BMP转换,远程终端处理零件图像,实现远程检测系统具有微型化,图形化,方便和经济等特点。
参考文献:
[1]. ARM920T datasheet https://www.dzsc.com/datasheet/ARM920T+_139814.html.
[2]. CS8900A-CQ3 datasheet https://www.dzsc.com/datasheet/CS8900A-CQ3+_593569.html.
[3]. 100M datasheet https://www.dzsc.com/datasheet/100M+_2509927.html.
[4]. ov7620 datasheet https://www.dzsc.com/datasheet/ov7620_525855.html.
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 深入解析嵌入式 OPENAMP 框架:开启异核通信新时代2025/7/22 16:27:29
- 一文快速了解OPENWRT基础知识2025/7/14 16:59:04
- 独立 ADC 优势大揭秘:为何不可替代?2025/7/7 16:21:04
- 深入剖析:嵌入式中 RS485、RS422 和 RS232 的特点差异2025/7/5 15:07:54
- 揭秘嵌入式 MCU:浮点数据处理难点及应对策略2025/6/20 15:19:07