<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于數碼相機SDK的開(kāi)發(fā)圖像采集設計

基于數碼相機SDK的開(kāi)發(fā)圖像采集設計

作者: 時(shí)間:2014-03-09 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:介紹柯達公司的數碼相機開(kāi)發(fā)套件 、的結構及其函數分類(lèi),并提供了一個(gè)典型的編程實(shí)例。

本文引用地址:http://dyxdggzs.com/article/234358.htm

數碼相機作為一種目前常見(jiàn)的消費類(lèi)商品,其基本工作原理是利用CCD光耦器件將光信號轉變?yōu)殡娦盘?,?jīng)過(guò)A/D轉換、數據壓縮等處理后經(jīng)串口或USB口在PC端應用程序控制下將圖片(多為JPEG格式)傳送到PC機的硬盤(pán)中。目前PC端的應用程序都由相機制造商所提供。很少有人注意到一些數碼相機制造商為開(kāi)發(fā)人員提供了相對豐富的(Software Development Kit)資源,便于有關(guān)人員利用數碼相機進(jìn)行圖像采集和監測方面的開(kāi)發(fā)工作。SDK開(kāi)發(fā)套件一般由頭文件(.H)、庫文件(.lib)和動(dòng)態(tài)鏈接庫文件(.dll)組成。美國柯達公司是世界相機制造業(yè)和諸多影像標準制定的帶頭兵。本文將以KODAK SDK為例對SDK及其應用作介紹,以使感興趣的開(kāi)發(fā)人員可以自編程序將數據相機應用在工程項目中。

1 SDK結構圖

SDK原理框圖如圖1所示。SDK控制層位于應用程序與指定SDK控制層(對于DS280相機此層為DC280SDK控制層)之間,

?

?

它的主要作用是接收應用程序的DC280_OpenCamera()指令,同時(shí)將指定相機SDK控制層調入內存區;接收DC2x0_CloseCamera()指令,同時(shí)釋放指定相機SDK控制層所占內存區。指定相機SDK層位于SDK控制層下,本層支持所有訪(fǎng)問(wèn)相機的函數,并將函數執行結果狀態(tài)碼(即錯誤代碼)經(jīng)SDK控制層上傳給應用程序。指定相機控制層的下層為驅動(dòng)程序層。驅動(dòng)程序用于與外部設備直接打交道。

2 SDK函數分類(lèi)

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

(1)相機初始化函數:主要包括_CloseCamera()和_OpenCamera()。

(2)相機控制函數:主要包括_GetStatus()、_GetConfig()、_SetConfig()、_ControlCameraTime()、_ControlCameraID()、_ControlTakePicture()、_ResetCamera()。

(3)圖片管理函數:_TakePicture()、_ResetCamera()。

(4)圖片信息獲取函數:_GetCameraPictInfo()、_GetAllPictureName()、_GetNativePicture()。

(5)文件傳遞函數:_GetFileFormCamera()、_SetFileToCamera。

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

3 SDK用法的一個(gè)典型實(shí)例

下面舉一個(gè)拍攝圖片的簡(jiǎn)單實(shí)例使讀者大體了解編程的一般模式,其過(guò)程如圖2所示。首先是相機初始化即打開(kāi)相機,然后讀取目前相機中拍攝方面的參數設置,根據需要修改某些參數設置,接著(zhù)拍攝圖片,最后關(guān)閉相機釋放內存。例程如下:

?

?

以下為SDK用法的典型例程:

#include "F210.h"

OSErr ret;

DC280_Camera ;Camera;

DC280_ImgProcData ThumbImgInfo;

DC280_TakePictInfo TakePictInfo;

DC280_PictInfo GenericPictInfo;

DC280_SpecificPictInfo SpecificPictInfo;//打開(kāi)相機

DC280_OpenCamera(VersionData,CameraData); //獲取相機設置參數

ret=DC280_ControlTakePicture(&Camera,TRUE,0L,(VOIDPTR &TakePictInfo);

//修改需要變動(dòng)的參數

ret=DC280_ControlTakePicture(&Camera,FALSE,(VOIDPTR&TakePictInfo); //拍照

ret=DC280_TakePicture(&Camera,TRUE,&ThumbImgInfo,&GenericPictInfo,(VOIDPTR)&SpecificPictInfo);

//可以根據需要加上文件傳遞函數等

DC210_CloseCamera(CameraData); //關(guān)閉相機

其中DC280_ControlTakePicture的第二個(gè)參數為GetSetFlag。當其為true時(shí)表示從相機中獲取設置參數;為false時(shí)表示將改動(dòng)過(guò)的參數輸送給相機。DC280_Camera的數據結構如下:

typedef struct {DC210_PortNum PortNum;

DC210_BitRate BitRate;

DC210_CameraType CamType;

BOOL CameraOpenFlag;

VOIDPTR InternalUseOnly;

}DC280_Camera ;

本文通過(guò)柯達公司的DC280 SDK開(kāi)發(fā)工具對SDK及利用它開(kāi)發(fā)相機應用程序進(jìn)行了簡(jiǎn)單介紹。其他公司SDK的使用方法基本類(lèi)似,只是函數名稱(chēng)略有不同,使用方法是一致的。SDK中函數及其參數的詳細說(shuō)明,可以在相機制造商的英文網(wǎng)站上從開(kāi)發(fā)工具一覽中找到。

光耦相關(guān)文章:光耦原理




關(guān)鍵詞: DC280 SDK

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>