《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 利用數碼相機SDK開發圖像采集應用程序

利用數碼相機SDK開發圖像采集應用程序

2008-08-29
作者:陳 曙  辛 陽

  摘? 要: 介紹柯達" title="柯達">柯達公司的數碼相機開發套件" title="開發套件">開發套件SDK DC280、SDK的結構及其函數分類,并提供了一個典型的編程實例。

  關鍵詞: SDK? 數碼相機? 開發

?

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

1 SDK結構圖

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

?

?

2 SDK函數分類

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

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

  (2)相機控制函數: 主要包括_GetStatus()、_GetConfig()、_SetConfig()、_ControlCameraTime()、_ControlCa-

meraID()、_ControlTakePicture()、_ResetCamera()。

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

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

  (5)文件傳遞函數" title="傳遞函數">傳遞函數:_GetFileFromCamera()、_SetFileToCamera()。

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

3 SDK用法的一個典型實例

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

?

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

  #include “F210.h”

  OSErr?????????????????????? ret;??????

  DC280_Camera??????????????? Camera;

  DC280_ImgProcData?????????? ThumbImgInfo;

  DC280_TakePictInfo????????? TakePictInfo;

  DC280_PictInfo????????????? GenericPictInfo;

  DC280_SpecificPictInfo????? SpecificPictInfo;

  //打開相機

  DC280_OpenCamera(VersionData, CameraData);

  //獲取相機設置參數

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

??????????????????????????????????????????????&TakePictInfo);

  //修改需要變動的參數

  ret=DC280_ControlTakePicture(&Camera, FALSE, (VOIDPTR)

  &TakePictInfo);????????      ????? //拍照

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

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

  DC210_CloseCamera(CameraData);????????? //關閉相機

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

  typedef struct??????? {DC210_PortNum??????? PortNum;

????????????????????????? DC210_BitRate???????? BitRate;

????????????????????????? DC210_CameraType????? CamType;

 ??????????????????????? BOOL????????????????? CameraOpenFlag;

??????????????????????????VOIDPTR?????????????? InternalUseOnly;

  } DC280_Camera ;

  本文通過柯達公司的DC280 SDK開發工具" title="開發工具">開發工具 對SDK及利用它開發相機應用程序進行了簡單介紹。其他公司SDK的使用方法基本類似,只是函數名稱略有不同,使用方法是一致的。SDK中函數及其參數的詳細說明,可以在相機制造商的英文網站上從開發工具一覽中找到。

?

參考文獻

1 Kodak DC280 Camera Software Development Kit Library Reference Manual. Version 0.71.1999;(6)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 农村三级孕妇视频在线 | 亚洲看片网站 | 草草在线影院 | 一级做a毛片免费视频 | 成人18免费| 草草久久97超级碰碰碰免费 | 手机在线播放视频 | 亚洲免费a | 毛片大全在线 | 爽死你个放荡粗暴小淫货双女视频 | 国产欧美日韩在线视频 | 精品国产一二三区在线影院 | 偷偷操不一样的久久 | 亚洲美女网址 | 久久手机免费视频 | 三级黄色片日韩 | av中文字幕网免费观看 | 92精品国产自产在线观看 | 美女视频很黄很a免费国产 美女视频黄.免费网址 | 日韩一页 | 怡红院亚洲红怡院天堂麻豆 | 粉嫩高中生的第一次在线观看 | 欧美一区二区在线观看免费网站 | 午夜精| 欧美国产日韩久久久 | 国产精品久久久久影院 | 免费看特级毛片 | 精品视频一区二区 | 性感美女视频黄.免费网站 性高湖久久久久久久久 | 国产1级片| 97在线国产视频 | 国产乱纶 | 日韩亚 | 久久精品国产精品亚洲艾 | 国产一区二区三区免费在线观看 | 国内精品久久久久久久影视麻豆 | 亚洲国产精品一区二区三区在线观看 | 亚洲人成影院在线高清 | 女人张开腿男人猛桶视频 | 日本视频三区 | 在线精品国产 |