位置:51电子网 » 技术资料 » D S P

利用数码相机SDK开发图像采集应用程序

发布时间:2008/5/27 0:00:00 访问次数:621

来源:电子技术应用 作者:陈 曙 辛 阳摘要:介绍柯达公司的数码相机开发套件sdk dc280、sdk的结构及其函数分类,并提供了一个典型的编程实例。

关键词:sdk 数码相机 开发数码相机作为一种目前常见的消费类商品,其基本工作原理是利用ccd光耦器件将光信号转变为电信号,经过a/d转换、数据压缩等处理后经串口或usb口在pc端应用程序控制下将图片(多为jpeg格式)传送到pc机的硬盘中。目前pc端的应用程序都由相机制造商所提供。很少有人注意到一些数码相机制造商为开发人员提供了相对丰富的sdk(software development kit)资源,便于有关人员利用数码相机进行图像采集和监测方面的开发工作。sdk开发套件一般由头文件(.h)、库文件(.lib)和动态链接库文件(.dll)组成。美国柯达公司是世界相机制造业和诸多影像标准制定的带头兵。本文将以kodak dc280 sdk为例对sdk及其应用作介绍,以使感兴趣的开发人员可以自编程序将数据相机应用在工程项目中。

1 sdk结构图

dc280 sdk原理框图如图1所示。sdk控制层位于应用程序与指定sdk控制层(对于ds280相机此层为dc280sdk控制层)之间,它的主要作用是接收应用程序的dc280_opencamera()指令,同时将指定相机sdk控制层调入内存区;接收dc2x0_closecamera()指令,同时释放指定相机sdk控制层所占内存区。指定相机sdk层位于sdk控制层下,本层支持所有访问相机的函数,并将函数执行结果状态码(即错误代码)经sdk控制层上传给应用程序。指定相机控制层的下层为驱动程序层。驱动程序用于与外部设备直接打交道。

2 sdk函数分类sdk内的函数按照作用类型一般可以分为以下几类:

(1)相机初始化函数:主要包括_closecamera()和_opencamera()。

(2)相机控制函数:主要包括_getstatus()、_getconfig()、_setconfig()、_controlcameratime()、_controlcameraid()、_controltakepicture()、_resetcamera()。

(3)图片管理函数:_takepicture()、_resetcamera()。

(4)图片信息获取函数:_getcamerapictinfo()、_getallpicturename()、_getnativepicture()。

(5)文件传递函数:_getfileformcamera()、_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开发工具对sdk及利用它开发相机应用程序进行了简单介绍。其他公司sdk的使用方法基本类似,只是函数名称略有不同,使用方法是一致的。sdk中函数及其参数的详细说明,可以在相机制造商的英文

来源:电子技术应用 作者:陈 曙 辛 阳摘要:介绍柯达公司的数码相机开发套件sdk dc280、sdk的结构及其函数分类,并提供了一个典型的编程实例。

关键词:sdk 数码相机 开发数码相机作为一种目前常见的消费类商品,其基本工作原理是利用ccd光耦器件将光信号转变为电信号,经过a/d转换、数据压缩等处理后经串口或usb口在pc端应用程序控制下将图片(多为jpeg格式)传送到pc机的硬盘中。目前pc端的应用程序都由相机制造商所提供。很少有人注意到一些数码相机制造商为开发人员提供了相对丰富的sdk(software development kit)资源,便于有关人员利用数码相机进行图像采集和监测方面的开发工作。sdk开发套件一般由头文件(.h)、库文件(.lib)和动态链接库文件(.dll)组成。美国柯达公司是世界相机制造业和诸多影像标准制定的带头兵。本文将以kodak dc280 sdk为例对sdk及其应用作介绍,以使感兴趣的开发人员可以自编程序将数据相机应用在工程项目中。

1 sdk结构图

dc280 sdk原理框图如图1所示。sdk控制层位于应用程序与指定sdk控制层(对于ds280相机此层为dc280sdk控制层)之间,它的主要作用是接收应用程序的dc280_opencamera()指令,同时将指定相机sdk控制层调入内存区;接收dc2x0_closecamera()指令,同时释放指定相机sdk控制层所占内存区。指定相机sdk层位于sdk控制层下,本层支持所有访问相机的函数,并将函数执行结果状态码(即错误代码)经sdk控制层上传给应用程序。指定相机控制层的下层为驱动程序层。驱动程序用于与外部设备直接打交道。

2 sdk函数分类sdk内的函数按照作用类型一般可以分为以下几类:

(1)相机初始化函数:主要包括_closecamera()和_opencamera()。

(2)相机控制函数:主要包括_getstatus()、_getconfig()、_setconfig()、_controlcameratime()、_controlcameraid()、_controltakepicture()、_resetcamera()。

(3)图片管理函数:_takepicture()、_resetcamera()。

(4)图片信息获取函数:_getcamerapictinfo()、_getallpicturename()、_getnativepicture()。

(5)文件传递函数:_getfileformcamera()、_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开发工具对sdk及利用它开发相机应用程序进行了简单介绍。其他公司sdk的使用方法基本类似,只是函数名称略有不同,使用方法是一致的。sdk中函数及其参数的详细说明,可以在相机制造商的英文

相关IC型号

热门点击

 

推荐技术资料

业余条件下PCM2702
    PGM2702采用SSOP28封装,引脚小而密,EP3... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!