期刊VIP學(xué)術(shù)指導(dǎo) 符合學(xué)術(shù)規(guī)范和道德
保障品質(zhì) 保證專業(yè),沒有后顧之憂
來源:期刊VIP網(wǎng)所屬分類:計算機網(wǎng)絡(luò)時間:瀏覽:次
摘要:數(shù)碼相機是集光學(xué)、機械、電子一體化的產(chǎn)品。它集成了影像信息的轉(zhuǎn)換、存儲和傳輸?shù)炔考哂袛?shù)字化存取模式,與電腦交互處理和實時拍攝等特點。文章發(fā)表在《電子科技》上,是電子工程師論文發(fā)表范文,供同行參考。
關(guān)鍵詞:SDK 數(shù)碼相機 開發(fā)數(shù)碼
光線通過鏡頭或者鏡頭組進(jìn)入相機,通過數(shù)碼相機成像元件轉(zhuǎn)化為數(shù)字信號,數(shù)字信號通過影像運算芯片儲存在存儲設(shè)備中。數(shù)碼相機的成像元件是CCD或者CMOS,該成像元件的特點是光線通過時,能根據(jù)光線的不同轉(zhuǎn)化為電子信號。數(shù)碼相機最早出現(xiàn)在美國,20多年前,美國曾利用它通過衛(wèi)星向地面?zhèn)魉驼掌髞頂?shù)碼攝影轉(zhuǎn)為民用并不斷拓展應(yīng)用范圍。
相機作為一種目前常見的消費類商品,其基本工作原理是利用CCD光耦器件將光信號轉(zhuǎn)變?yōu)殡娦盘枺?jīng)過A/D轉(zhuǎn)換、數(shù)據(jù)壓縮等處理后經(jīng)串口或USB口在PC端應(yīng)用程序控制下將圖片(多為JPEG格式)傳送到PC機的硬盤中。目前PC端的應(yīng)用程序都由相機制造商所提供。介紹柯達(dá)公司的數(shù)碼相機開發(fā)套件SDK DC280、SDK的結(jié)構(gòu)及其函數(shù)分類,并提供了一個典型的編程實例。
很少有人注意到一些數(shù)碼相機制造商為開發(fā)人員提供了相對豐富的SDK(Software Development Kit)資源,便于有關(guān)人員利用數(shù)碼相機進(jìn)行圖像采集和監(jiān)測方面的開發(fā)工作。SDK開發(fā)套件一般由頭文件(.H)、庫文件(.lib)和動態(tài)鏈接庫文件(.dll)組成。美國柯達(dá)公司是世界相機制造業(yè)和諸多影像標(biāo)準(zhǔn)制定的帶頭兵。
本文將以KODAK DC280 SDK為例對SDK及其應(yīng)用作介紹,以使感興趣的開發(fā)人員可以自編程序?qū)?shù)據(jù)相機應(yīng)用在工程項目中。1 SDK結(jié)構(gòu)圖DC280 SDK原理框圖如圖1所示。SDK控制層位于應(yīng)用程序與指定SDK控制層(對于DS280相機此層為DC280SDK控制層)之間,它的主要作用是接收應(yīng)用程序的DC280_OpenCamera()指令,同時將指定相機SDK控制層調(diào)入內(nèi)存區(qū);接收DC2x0_CloseCamera()指令,同時釋放指定相機SDK控制層所占內(nèi)存區(qū)。
指定相機SDK層位于SDK控制層下,本層支持所有訪問相機的函數(shù),并將函數(shù)執(zhí)行結(jié)果狀態(tài)碼(即錯誤代碼)經(jīng)SDK控制層上傳給應(yīng)用程序。指定相機控制層的下層為驅(qū)動程序?qū)印r?qū)動程序用于與外部設(shè)備直接打交道。
2 SDK函數(shù)分類SDK內(nèi)的函數(shù)按照作用類型一般可以分為以下幾類:(1)相機初始化函數(shù):主要包括_CloseCamera()和_OpenCamera()。
(2)相機控制函數(shù):主要包括_GetStatus()、_GetConfig()、_SetConfig()、_ControlCameraTime()、_ControlCameraID()、_ControlTakePicture()、_ResetCamera()。
(3)圖片管理函數(shù):_TakePicture()、_ResetCamera()。(4)圖片信息獲取函數(shù):_GetCameraPictInfo()、_GetAllPictureName()、_GetNativePicture()。(5)文件傳遞函數(shù):_GetFileFormCamera()、_SetFileToCamera。(6)其他類型的函數(shù):包括電池電量數(shù)據(jù)獲取函數(shù)、最后一次操作返回碼獲取函數(shù)等。3 SDK用法的一個典型實例下面舉一個拍攝圖片的簡單實例使讀者大體了解編程的一般模式,其過程如圖2所示。首先是相機初始化即打開相機,然后讀取目前相機中拍攝方面的參數(shù)設(shè)置,根據(jù)需要修改某些參數(shù)設(shè)置,接著拍攝圖片,最后關(guān)閉相機釋放內(nèi)存。例程如下:
以下為SDK用法的典型例程:#include "F210.h"OSErr retDC280_Camera Camera;DC280_ImgProcData ThumbImgInfo;DC280_TakePictInfo TakePictInfo;DC280_PictInfo GenericPictInfo;DC280_SpecificPictInfo SpecificPictInfo;//打開相機DC280_OpenCamera(VersionData,CameraData); //獲取相機設(shè)置參數(shù)ret=DC280_ControlTakePicture(&Camera,TRUE,0L,(VOIDPTR &TakePictInfo);//
修改需要變動的參數(shù)ret=DC280_ControlTakePicture(&Camera,F(xiàn)ALSE,(VOIDPTR&TakePictInfo); //拍照ret=DC280_TakePicture(&Camera,TRUE,&ThumbImgInfo,&GenericPictInfo,(VOIDPTR)&SpecificPictInfo);//可以根據(jù)需要加上文件傳遞函數(shù)等DC210_CloseCamera(CameraData)//關(guān)閉相機其中DC280_ControlTakePicture的第二個參數(shù)為GetSetFlag。當(dāng)其為true時表示從相機中獲取設(shè)置參數(shù);為false時表示將改動過的參數(shù)輸送給相機。
DC280_Camera的數(shù)據(jù)結(jié)構(gòu)如下:typedef struct {DC210_PortNum PortNum;DC210_BitRate BitRateDC210_CameraType CamType;BOOL CameraOpenFlag;VOIDPTR InternalUseOnly;}DC280_Camera 本文通過柯達(dá)公司的DC280 SDK開發(fā)工具對SDK及利用它開發(fā)相機應(yīng)用程序進(jìn)行了簡單介紹。其他公司SDK的使用方法基本類似,只是函數(shù)名稱略有不同,使用方法是一致的。SDK中函數(shù)及其參數(shù)的詳細(xì)說明,可以在相機制造商的英文網(wǎng)站上從開發(fā)工具一覽中找到。(完)
電子論文發(fā)表最好的網(wǎng)站雜志推薦:《電子科技》創(chuàng)刊于1987年,月刊,每月15日出版。主要刊登高等院校、科研院所、電子行業(yè)企事業(yè)單位等科研機構(gòu)在電子技術(shù)應(yīng)用、通信工程、計算機科學(xué)技術(shù)與應(yīng)用、網(wǎng)絡(luò)安全及信息、光電子材料等領(lǐng)域最新的學(xué)術(shù)、技術(shù)論文、工程技術(shù)應(yīng)用研究、教學(xué)實踐總結(jié)、行業(yè)綜述等稿件。該刊秉承嚴(yán)謹(jǐn)辦刊的態(tài)度以保證期刊的嚴(yán)肅性、學(xué)術(shù)性。