999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數碼相機在自動氣象站中的應用

2010-04-12 00:00:00包軍衛
現代電子技術 2010年18期

摘 要: 通常傳統自動氣象站只能采集常規的氣象數據,如:溫度、濕度、風力等,而無法采集自動氣象站當地的高分辨率圖像信息,通過對奧林巴斯數碼相機進行研究,采用奧林巴斯提供的CAMEDIA SDK 3.3 開發套件,設計了一套基于高分辨數碼相機的自動氣象站圖像采集和傳輸系統。系統通過自動站的高分辨率數碼相機遠程采集圖像,并通過網絡傳輸到數據中心,實現了自動氣象站對當地圖像信息的采集與傳輸。著重介紹分析了數碼相機在系統中的應用,并實現了圖像數據的自動采集功能。關鍵詞:自動氣象站;圖像采集;數碼相機;網絡傳輸

中圖分類號:TN911-33文獻標識碼:A

文章編號:1004-373X(2010)18-0074-03

Application of Digital Camera in Automatic Weather Station

BAO Jun-wei

(Department of Electronics and Information Engineering, Jiangyin Polytechnic College, Jiangyin 214405, China)

Abstract: Since the traditional automatic weather station usually only can acquisite some conventional meteorological data (for example: temperature, humidity, wind-force, etc), but can not capture the high-resolution image information of the automatic weather station, an image acquisition and transmission system based on high-resolution digital camera for automatic weather-station is designed by researching the Olympus digital camera and using CAMEDIA SDK 3.3 developed by Olympus. The acquisition and transmission of the local image information around the automation weather station is achieved by collecting the remote image information through the high-resolution digital camera and transfering it to data center by network. The application of digital camera in the system is analyzed emphatically. The automatic acquisition function of image data was realized. Keywords: automatic weather station; image acquisition; digital camera; network transmission

在氣象觀測中經常需要通過自動氣象站采集當地的天氣、環境等圖像信息供氣象分析使用,而通常傳統自動氣象站只采集溫度、濕度、風速等常規氣象信息,而對于現場空氣質量、能見度等信息的采集卻無能為力。系統設計的自動氣象站除了以上常規氣象數據外,還能夠采集高清晰圖像,并通過網絡傳輸至數據中心,用以分析當地的空氣質量、能見度等氣象情況。

1 自動氣象站圖像采集傳輸系統

自動氣象站圖像采集傳輸系統由戶外自動數據采集站和數據中心構成。自動數據采集站負責多種氣象數據和現場圖像數據的采集,自動站系統采用ARM為核心的主機,通過RS 485總線控制載有高分辨率相機的云臺移動方位[1-2]。高分辨率數碼相機通過USB數據總線與主機相連[3],拍攝的圖像數據可通過TCP/IP網絡或WiFi網絡傳輸至數據中心[4]。數據中心通過網絡通信遠程控制自動站的運行,并定時接收遠程自動站的數據[5-6]。系統總體結構框圖如圖1所示。

圖1 系統總體結構框圖

2 數碼相機在系統中的應用

數碼相機作為一種目前常見的消費類商品,其基本工作原理是利用CCD光耦器件將光信號轉變為電信號,經過A/D轉換、數據壓縮等處理后經串口或USB口在PC端應用程序控制下將圖片(多為JPEG格式)傳送到PC機的硬盤中[7]。目前PC端的應用程序都由相機制造商所提供。很少有人注意到一些數碼相機制造商為開發人員提供相對豐富的SDK(software development kit)資源,便于有關人員利用數碼相機進行圖像采集和監測方面的開發工作。OLYMPUS提供的CAMEDIA SDK 3.3開發套件有兩種,一種是Active-X控件版本;一種是DLL動態鏈接庫文件版本[1]。Active-X控件版本需要系統裝有OLYMPUS提供的RYE控件,該方法在軟件發布時比較麻煩,通常都采用DLL動態鏈接庫文件的方法。本文的例程均采用隱式的加載時鏈接DLL方法實現,因此除了必須的*.dll文件外,還需要DLL的*.h文件和*.lib文件。

2.1 SDK結構圖

CAMEDIA SDK 3.3原理框圖如圖2所示。SDK控制層位于應用程序與指定SDK控制層(對于OLYMPUS-C350相機該層為C350 SDK控制層)之間,它的主要作用是接收應用程序的Connect()指令,同時將指定相機SDK控制層調入內存區;接收DisCon-nect()指令,同時釋放指定相機SDK控制層所占內存區。指定相機SDK層位于SDK控制層下,本層支持所有訪問相機的函數,并將函數執行結果狀態碼(即錯誤代碼)經SDK控制層上傳給應用程序。指定相機控制層的下層為驅動程序層。驅動程序用于與外部設備直接打交道[8]。

2.2 SDK函數分類

SDK內的函數按照作用類型一般可以分為以下幾類:

(1) 相機初始化函數主要包括Connect()和DisConnect()。

(2) 相機控制函數主要包括Capture(),Preview(),SetPropCameraID(),SetCaptureProp(),SetPropOpticalZoom(),SetPropIsoSpeed(),SetPropFocusMode(),SetLcdMode(),SetPropFlash(),SetPropFocusPosition(),SetPropCameraTime()。

(3) 圖片管理函數有SetPropCurrentPicture(),ErasePicture(),EraseLast(),EraseAll()。

(4) 圖片信息獲取函數有GetPropPictCount(),GetPropRemainCount(),GetPictureProp(),GetPicTagProp(),GetPropPicSize ()。

(5) 文件傳遞函數有GetPicture(),UploadPicture()。

(6) 其他類型的函數包括電池電量數據獲取函數、最后一次操作返回碼獲取函數等。

3 SDK用法的一個典型實例

下面舉一個拍攝圖片的簡單實例使讀者大體了解編程的一般模式,其過程如圖3所示。

圖2 CAMEDIA SDK 3.3原理框圖

圖3 拍攝圖形過程

首先是相機初始化即打開相機,然后讀取目前相機中拍攝方面的參數設置,根據需要修改某些參數設置,接著拍攝照片,下載照片,最后關閉相機釋放內存[9]。例程如下:

以下為采用VC++開發的SDK用法的典型例程[1,10]:

(1) 相機初始化

BOOL CVCSampleDlg::OnInit()

{

CStringstrName, strMsg;

long nRes;

m_nCurrentCamera =-1;//當前連接相機序號,-1表示沒有指定當前相機

nRes = m_Rye.InitControl();

m_nNumCameras = m_Rye.GetPropCameraCount(); //連接至系統的所有相機數目系統允許連接多個相機,

//并依次連接。只有一個相機時可以直接連至序號為0的相機

for (c = 0; c < m_nNumCameras; c++) {

strName = m_Rye.GetPropConnectCamera(c);

nRes = m_Rye.Connect(c);

if (nRes != RYE_NO_ERROR) {

strMsg.Format(_T(\"Error 0x%02x connecting to camera no. %d (%s)\"), nRes, c, strName);

AfxMessageBox(strMsg);

return;

}

}

}

(2) 讀取并設定相機的焦距

void CVCSampleDlg::OnSetzoom()

{ //設定相機的焦距

try {// 讀取實際相機焦距

m_nZoom = m_pRye->GetPropOpticalZoom(m_nCurrentCamera);

m_pRye->SetPropOpticalZoom(m_nCurrentCamera, m_nZoom);

m_strZoom.Format(_T(\"Optical Zoom: %d\"), m_nZoom);

}

catch (COleDispatchException *e) {

m_strErr.Format(_T(\"Zoom Error: 0x%02x.\"), e->m_wCode);

AfxMessageBox(m_strErr);

e->Delete();

}

}

(3) 拍攝照片并下載到本地

void CVCSampleDlg::OnCapture()

{

long nFiles[1],nCount;

char strFileName[80]=\"\";//通過當前相機拍攝照片

nRes = pm_Rye->Capture(m_nCurrentCamera);

nRes = pm_Rye->GetPropPicCount(m_nCurrentCamera,nFiles);

nCount = *nFiles;

// 將最后拍攝的照片設成當前照片

nRes = pm_Rye->SetPropCurrentPicture(m_nCurrentCamera,*nFiles);

nRes = pm_Rye->GetPropFileName(m_nCurrentCamera,strFileName);

CStringstrFile;

LPTSTRlpszBuff = strFile.GetBuffer(80);

//獲取文件名

strFile.ReleaseBuffer();

nRes = pm_Rye->GetPropFileName(m_nCurrentCamera,lpszBuff);

m_bCancelXfer[m_nCurrentCamera] = FALSE;

nRes= pm_Rye->SetPropCancel(m_nCurrentCamera, m_bCancelXfer[m_nCurrentCamera]);

//設置照片并下載至本地

LPVOID buff;

CString strRes;

long PicSize[1];

// 獲取照片文件大小,并創建一個數組用來保存照片文件數據

nRes = pm_Rye->GetPropPicSize(m_nCurrentCamera,PicSize);

buff=new char[*PicSize];

nRes = pm_Rye->GetPicture(m_nCurrentCamera,*PicSize,buff);

//創建文件并將照片存為本地文件

CFile file(strFile, CFile::modeCreate | CFile::modeReadWrite | CFile::typeBinary);

file.Write(buff, *PicSize);

delete buff;

buff=NULL;

nRes = pm_Rye->ErasePicture(m_nCurrentCamera);

nRes = pm_Rye->GetPropPicCount(m_nCurrentCamera,nFiles);

if (*nFiles != nCount -1)

{

m_strErr.Format(_T(\"Erase Picture Error Faild!\"));

AfxMessageBox(m_strErr);

}

}

(4) 關閉相機

void CVCSampleDlg::OnClose()

{

// 關閉系統連接的所有相機

long c;

for (c = 0; c < m_nNumCameras; c++)

m_Rye.DisConnect(c);

CDialog::OnClose();

}

4 結 語

本文闡述了自動氣象站圖像采集系統的構成和主要功能,著重介紹了奧林巴斯公司的SDK開發工具CAMEDIA SDK 3.3,并對利用它開發相機的應用程序進行了詳細介紹。系統的一些其他功能實現都可以參考現成的資料,因此沒做詳細介紹。奧林巴斯CAMEDIA SDK 3.3中函數及其參數的詳細說明,可以在相機制造商的英文網站上從開發工具一覽中找到。該系統經過運行測試,完全滿足自動氣象站對氣象數據和高分辨率現場圖像數據的要求。

參考文獻

[1]李現勇.Visual C++串口通信技術與工程實踐 [M].2版.北京:人民郵電出版社,2005.

[2]謝瑞.串行技術大全[M].北京:清華大學出版社,2000.

[3]蕭世文.USB2.0硬件設計[M].北京:清華大學出版社,2002.

[4]任泰明.TCP/IP協議與網絡編程[M].西安:西安電子科技大學出版社,2004.

[5]蔣東興.Windows Sockets網絡程序設計大全[M].北京:清華大學出版社,1999.

[6]李昭智.數據通信與計算機網絡[M].3版.北京:電子工業出版社,2002.

[7]張磊.數碼相機[M].上海:上海科學技術出版社,2001.

[8]陳曙,辛陽.利用數碼相機SDK開發圖像采集應用程序[J].電子技術應用,2003(7):21-22.

[9]Olymplls Corporation.Olympus. CAMEDIA SDK 3.3(DLL version)reference manual[M].Japan: Olympus Corporation, 2002.

[10] 郎銳.VISUAL C++網絡通信程序開發指南[M].北京:機械工業出版社,2004.

主站蜘蛛池模板: 久久黄色免费电影| 国产爽歪歪免费视频在线观看 | 日韩一区精品视频一区二区| 国产真实二区一区在线亚洲| 网友自拍视频精品区| 亚洲欧美不卡视频| 中文字幕人成人乱码亚洲电影| 亚洲第一色视频| 国产成人8x视频一区二区| 91娇喘视频| 99ri国产在线| 国内精品小视频在线| 国产一级精品毛片基地| 97视频精品全国免费观看| 中文字幕久久亚洲一区| 亚洲天堂.com| 在线国产欧美| 国产福利在线免费| 欧洲免费精品视频在线| 国产成人高清精品免费| 亚洲av无码片一区二区三区| 国产91无码福利在线| 久久久久亚洲AV成人人电影软件| 亚洲精品爱草草视频在线| 国产成人综合日韩精品无码首页| 久久这里只精品热免费99| 99在线国产| 蜜桃臀无码内射一区二区三区| 五月天香蕉视频国产亚| 无码专区第一页| 九九线精品视频在线观看| 久综合日韩| 青草精品视频| 久久精品嫩草研究院| 91探花国产综合在线精品| 免费看av在线网站网址| 国产午夜在线观看视频| 欧美不卡在线视频| 一区二区三区成人| 毛片网站在线播放| 毛片免费在线视频| 美女高潮全身流白浆福利区| 国产精品亚洲片在线va| 欧美a级完整在线观看| 黄色网页在线播放| 免费观看亚洲人成网站| 精品国产电影久久九九| 欧美一级高清片欧美国产欧美| 色综合天天综合| 国产一级精品毛片基地| 欧美一区日韩一区中文字幕页| 美美女高清毛片视频免费观看| 国产在线第二页| 亚洲中文字幕在线观看| 欧美 国产 人人视频| 一级毛片在线免费视频| 成人精品免费视频| 久久婷婷综合色一区二区| 亚洲av日韩综合一区尤物| 国产在线精品人成导航| av在线无码浏览| 91精品国产丝袜| 国产在线精品网址你懂的| 全部免费特黄特色大片视频| 日本一区二区三区精品AⅤ| 亚洲性视频网站| 一级毛片免费观看不卡视频| 狼友av永久网站免费观看| 亚洲人成网站在线播放2019| 久久国产亚洲欧美日韩精品| 亚洲男人在线天堂| 国产综合欧美| 69免费在线视频| 成人自拍视频在线观看| 亚洲一区毛片| 免费无码在线观看| 亚洲成AV人手机在线观看网站| 国产剧情一区二区| 国产成人综合在线观看| 欧美激情第一欧美在线| 伊人天堂网| 国模粉嫩小泬视频在线观看|