新闻中心

EEPW首页>嵌入式系统>设计应用> 基于Linux的嵌入式红外热成像系统设计

基于Linux的嵌入式红外热成像系统设计

作者: 时间:2010-04-06 来源:网络 收藏

图3软件流程图


2 界面及图像显示程序
Qt是Trolhech公司推出的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt具有完全面向对象的特点,很容易扩展,并且允许真正地组件编程。本程序共由QApplication、QWidget、QImageShow和QBmpSave、QtextRemark、QPain五大类组成,其中QimageShow、QBmpSave和QTextRemark是自定义的类。QApplication是QT程序必须有的一个类,每一个QT应用程序都要包含QApplication对象,QApplication管理应用程序各种各样的资源。QWidget类是所有用户界面对象的基类。QimageShow负责图像及温度的实时显示。

QbmpSave负责图像的存储,存储格式为16bitBMP格式。QtextRemark实现了注释文件的新建、打开、编辑等常用功能。


图像显示程序
采集图像数据为RGB24格式,几个重要函数如下:


fd=open(INFRARED_DEVICE,O_RDWR);//打开红外探头设备


pict.palette=VIDEO_PALETTE_RGB24;//设置图像格式


frames=(unsigned char *)mmap(0,mbuf.size,PROT_READPROT_WRITE,MAP_SHARED,fd,0);//通过内存映射获取图像数据


构建QimageShow图像表示类,再使用QPaint画图:


image=QimageShow(frames+ mbuf.offsets[frame],width,height,QImage::Format_RGB 888);
painter.drawImage(QRect ((width()-w)/2,(height()-h)/2,w,h),m_image,QRect(0,0,m_image.width(),m_image.height()));


温度动态显示程序
用ALPHA通道,使用半透明效果实现跟踪鼠标并输出对应点温度(point.x、point.y记录当前鼠标所指向坐标)。


Int Width,Hight;//定义显示框的高度和宽度Pixmap= QPixmap(100,50);//设定显示框大小


Pixmap.fill(QColor(255,255, 255,127));//设定温度显示效果为半透明效果


Painter.drawpixmap(point.x,point.y,pixmap)//跟踪鼠标显示出对应点温度


BMP位图保存程序
位图文件(Bitmap-File,BMP)可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它们的名称和符号如表1所示。


程序先建立存储文件,进行相应的文件信息设置,文件信息的设置要和所采集图像数据一致,否则不能正确显示结果,然后将信息保存到文件中。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭