利用數(shù)碼相機SDK開發(fā)圖像采集應用程序
發(fā)布時間:2008/5/27 0:00:00 訪問次數(shù):627
來源:電子技術應用 作者:陳 曙 辛 陽摘要:介紹柯達公司的數(shù)碼相機開發(fā)套件sdk dc280、sdk的結構及其函數(shù)分類,并提供了一個典型的編程實例。
關鍵詞:sdk 數(shù)碼相機 開發(fā)數(shù)碼相機作為一種目前常見的消費類商品,其基本工作原理是利用ccd光耦器件將光信號轉變?yōu)殡娦盘枺?jīng)過a/d轉換、數(shù)據(jù)壓縮等處理后經(jīng)串口或usb口在pc端應用程序控制下將圖片(多為jpeg格式)傳送到pc機的硬盤中。目前pc端的應用程序都由相機制造商所提供。很少有人注意到一些數(shù)碼相機制造商為開發(fā)人員提供了相對豐富的sdk(software development kit)資源,便于有關人員利用數(shù)碼相機進行圖像采集和監(jiān)測方面的開發(fā)工作。sdk開發(fā)套件一般由頭文件(.h)、庫文件(.lib)和動態(tài)鏈接庫文件(.dll)組成。美國柯達公司是世界相機制造業(yè)和諸多影像標準制定的帶頭兵。本文將以kodak dc280 sdk為例對sdk及其應用作介紹,以使感興趣的開發(fā)人員可以自編程序將數(shù)據(jù)相機應用在工程項目中。
1 sdk結構圖
dc280 sdk原理框圖如圖1所示。sdk控制層位于應用程序與指定sdk控制層(對于ds280相機此層為dc280sdk控制層)之間,它的主要作用是接收應用程序的dc280_opencamera()指令,同時將指定相機sdk控制層調入內存區(qū);接收dc2x0_closecamera()指令,同時釋放指定相機sdk控制層所占內存區(qū)。指定相機sdk層位于sdk控制層下,本層支持所有訪問相機的函數(shù),并將函數(shù)執(zhí)行結果狀態(tài)碼(即錯誤代碼)經(jīng)sdk控制層上傳給應用程序。指定相機控制層的下層為驅動程序層。驅動程序用于與外部設備直接打交道。
2 sdk函數(shù)分類sdk內的函數(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ù)設置,根據(jù)需要修改某些參數(shù)設置,接著拍攝圖片,最后關閉相機釋放內存。例程如下:
以下為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); //獲取相機設置參數(shù)
ret=dc280_controltakepicture(&camera,true,0l,(voidptr &takepictinfo);
//修改需要變動的參數(shù)
ret=dc280_controltakepicture(&camera,false,(voidptr&takepictinfo); //拍照
ret=dc280_takepicture(&camera,true,&thumbimginfo,&genericpictinfo,(voidptr)&specificpictinfo);
//可以根據(jù)需要加上文件傳遞函數(shù)等
dc210_closecamera(cameradata); //關閉相機
其中dc280_controltakepicture的第二個參數(shù)為getsetflag。當其為true時表示從相機中獲取設置參數(shù);為false時表示將改動過的參數(shù)輸送給相機。dc280_camera的數(shù)據(jù)結構如下:
typedef struct {dc210_portnum portnum;
dc210_bitrate bitrate;
dc210_cameratype camtype;
bool cameraopenflag;
voidptr internaluseonly;
}dc280_camera ;
本文通過柯達公司的dc280 sdk開發(fā)工具對sdk及利用它開發(fā)相機應用程序進行了簡單介紹。其他公司sdk的使用方法基本類似,只是函數(shù)名稱略有不同,使用方法是一致的。sdk中函數(shù)及其參數(shù)的詳細說明,可以在相機制造商的英文
來源:電子技術應用 作者:陳 曙 辛 陽摘要:介紹柯達公司的數(shù)碼相機開發(fā)套件sdk dc280、sdk的結構及其函數(shù)分類,并提供了一個典型的編程實例。
關鍵詞:sdk 數(shù)碼相機 開發(fā)數(shù)碼相機作為一種目前常見的消費類商品,其基本工作原理是利用ccd光耦器件將光信號轉變?yōu)殡娦盘,?jīng)過a/d轉換、數(shù)據(jù)壓縮等處理后經(jīng)串口或usb口在pc端應用程序控制下將圖片(多為jpeg格式)傳送到pc機的硬盤中。目前pc端的應用程序都由相機制造商所提供。很少有人注意到一些數(shù)碼相機制造商為開發(fā)人員提供了相對豐富的sdk(software development kit)資源,便于有關人員利用數(shù)碼相機進行圖像采集和監(jiān)測方面的開發(fā)工作。sdk開發(fā)套件一般由頭文件(.h)、庫文件(.lib)和動態(tài)鏈接庫文件(.dll)組成。美國柯達公司是世界相機制造業(yè)和諸多影像標準制定的帶頭兵。本文將以kodak dc280 sdk為例對sdk及其應用作介紹,以使感興趣的開發(fā)人員可以自編程序將數(shù)據(jù)相機應用在工程項目中。
1 sdk結構圖
dc280 sdk原理框圖如圖1所示。sdk控制層位于應用程序與指定sdk控制層(對于ds280相機此層為dc280sdk控制層)之間,它的主要作用是接收應用程序的dc280_opencamera()指令,同時將指定相機sdk控制層調入內存區(qū);接收dc2x0_closecamera()指令,同時釋放指定相機sdk控制層所占內存區(qū)。指定相機sdk層位于sdk控制層下,本層支持所有訪問相機的函數(shù),并將函數(shù)執(zhí)行結果狀態(tài)碼(即錯誤代碼)經(jīng)sdk控制層上傳給應用程序。指定相機控制層的下層為驅動程序層。驅動程序用于與外部設備直接打交道。
2 sdk函數(shù)分類sdk內的函數(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ù)設置,根據(jù)需要修改某些參數(shù)設置,接著拍攝圖片,最后關閉相機釋放內存。例程如下:
以下為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); //獲取相機設置參數(shù)
ret=dc280_controltakepicture(&camera,true,0l,(voidptr &takepictinfo);
//修改需要變動的參數(shù)
ret=dc280_controltakepicture(&camera,false,(voidptr&takepictinfo); //拍照
ret=dc280_takepicture(&camera,true,&thumbimginfo,&genericpictinfo,(voidptr)&specificpictinfo);
//可以根據(jù)需要加上文件傳遞函數(shù)等
dc210_closecamera(cameradata); //關閉相機
其中dc280_controltakepicture的第二個參數(shù)為getsetflag。當其為true時表示從相機中獲取設置參數(shù);為false時表示將改動過的參數(shù)輸送給相機。dc280_camera的數(shù)據(jù)結構如下:
typedef struct {dc210_portnum portnum;
dc210_bitrate bitrate;
dc210_cameratype camtype;
bool cameraopenflag;
voidptr internaluseonly;
}dc280_camera ;
本文通過柯達公司的dc280 sdk開發(fā)工具對sdk及利用它開發(fā)相機應用程序進行了簡單介紹。其他公司sdk的使用方法基本類似,只是函數(shù)名稱略有不同,使用方法是一致的。sdk中函數(shù)及其參數(shù)的詳細說明,可以在相機制造商的英文