新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于Linux的嵌入式紅外熱成像系統(tǒng)設計

基于Linux的嵌入式紅外熱成像系統(tǒng)設計

作者: 時間:2010-04-06 來源:網(wǎng)絡 收藏

圖3 軟件流程圖


2 界面及圖像顯示程序
Qt是Trolhech公司推出的一個多平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發(fā)者建立藝術級的圖形用戶界面所需的所用功能。Qt具有完全面向對象的特點,很容易擴展,并且允許真正地組件編程。本程序共由QApplication、QWidget、QImageShow和QBmpSave、QtextRemark、QPain五大類組成,其中QimageShow、QBmpSave和QTextRemark是自定義的類。QApplication是QT程序必須有的一個類,每一個QT應用程序都要包含QApplication對象,QApplication管理應用程序各種各樣的資源。QWidget類是所有用戶界面對象的基類。QimageShow負責圖像及溫度的實時顯示。

QbmpSave負責圖像的存儲,存儲格式為16bitBMP格式。QtextRemark實現(xiàn)了注釋文件的新建、打開、編輯等常用功能。


圖像顯示程序
采集圖像數(shù)據(jù)為RGB24格式,幾個重要函數(shù)如下:


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);//通過內存映射獲取圖像數(shù)據(jù)


構建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()));


溫度動態(tài)顯示程序
用ALPHA通道,使用半透明效果實現(xiàn)跟蹤鼠標并輸出對應點溫度(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)和定義位圖的字節(jié)陣列,它們的名稱和符號如表1所示。


程序先建立存儲文件,進行相應的文件信息設置,文件信息的設置要和所采集圖像數(shù)據(jù)一致,否則不能正確顯示結果,然后將信息保存到文件中。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉