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.

主站蜘蛛池模板: 色噜噜久久| 国产永久免费视频m3u8| 99精品视频播放| 又污又黄又无遮挡网站| 欧美a级在线| 亚洲色图欧美视频| 日韩欧美国产中文| 免费人成在线观看成人片| 久久久久免费看成人影片 | 72种姿势欧美久久久大黄蕉| 欧洲高清无码在线| 国语少妇高潮| 在线免费不卡视频| 国产99视频精品免费视频7| 亚洲美女视频一区| 国产成人8x视频一区二区| 欧美成人一级| 91av国产在线| 亚洲人成网址| 国产清纯在线一区二区WWW| 精品日韩亚洲欧美高清a| 欧美激情一区二区三区成人| 日韩黄色精品| 91黄色在线观看| 毛片免费高清免费| 国产精品免费露脸视频| 色综合手机在线| 欧美国产日产一区二区| 午夜日b视频| 国产精品嫩草影院av| 99久久国产综合精品2020| 一本色道久久88| 日本一区二区不卡视频| 九九九精品成人免费视频7| 黄色一级视频欧美| 国产麻豆福利av在线播放| 欧美视频在线播放观看免费福利资源| 国产亚洲欧美另类一区二区| 国产精品永久在线| 日韩免费视频播播| 欧美亚洲国产精品久久蜜芽| 日韩精品一区二区深田咏美 | 日本精品αv中文字幕| 色天堂无毒不卡| 91精品专区| 成人无码一区二区三区视频在线观看| 久久国产精品麻豆系列| 在线精品视频成人网| 激情综合网激情综合| 中国一级特黄视频| 亚洲精品国产乱码不卡| а∨天堂一区中文字幕| 中文字幕久久亚洲一区 | 亚洲嫩模喷白浆| 女同国产精品一区二区| 波多野结衣无码视频在线观看| 看你懂的巨臀中文字幕一区二区| 色老头综合网| 国产精品手机视频一区二区| 日本在线国产| 伊人激情综合网| 国产精品久久国产精麻豆99网站| 国产精品无码一区二区桃花视频| 日韩毛片视频| 无码中字出轨中文人妻中文中| 九九热这里只有国产精品| 日韩无码真实干出血视频| 精品国产欧美精品v| A级毛片高清免费视频就| 国产你懂得| 伊在人亞洲香蕉精品區| 最新国产午夜精品视频成人| 亚洲人成高清| 欧美在线黄| www.精品国产| 欧美综合在线观看| 欧美在线黄| 人妻精品久久无码区| 国产一区二区三区视频| 国产地址二永久伊甸园| 重口调教一区二区视频| 久久女人网|