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

离石小潴

离石小潴

2016-02-19 17:40

今天图老师小编给大家介绍下利用数码相机SDK开发图像采集应用程序,平时喜欢利用数码相机SDK开发图像采集应用程序的朋友赶紧收藏起来吧!记得点赞哦~

  数码相机作为一种目前常见的消费类商品,其基本工作原理是利用CCD光耦器件将光信号转变为电信号,经过A/D转换、数据压缩等处理后经串口或USB口在PC端应用程序控制下将图片(多为JPEG格式)传送到PC机的硬盘中。

  目前PC端的应用程序都由相机制造商所提供。很少有人注意到一些数码相机制造商为开发人员提供了相对丰富的SDK(Software Development Kit)资源,便于有关人员利用数码相机进行图像采集和监测方面的开发工作。SDK开发套件一般由头文件(.H)、库文件(.lib)和动态链接库文件(.dll)组成。美国柯达公司是世界相机制造业和诸多影像标准制定的带头兵。本文将以KODAK DC280 SDK为例对SDK及其应用作介绍,以使感兴趣的开发人员可以自编程序将数据相机应用在工程项目中。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  1 SDK结构图

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  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中函数及其参数的详细说明,可以在相机制造商的英文网站上从开发工具一览中找到。

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
利用数码相机SDK开发图像采集应用程序

数码相机图像传感器知识

摄影
数码相机图像传感器知识

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

数码相机基础 ISO、图像尺寸和图像质量

摄影 人像摄影 静物摄影
数码相机基础 ISO、图像尺寸和图像质量

利用JSP 2.0开发Web应用程序

Java JAVA基础
利用JSP 2.0开发Web应用程序

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

利用AJAX技术开发应用程序实战

Web开发
利用AJAX技术开发应用程序实战

数码相机怎么使用?数码相机的使用小窍门

生活小常识 居家生活
数码相机怎么使用?数码相机的使用小窍门

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

浅谈PHP语法(三)

浅谈PHP语法(三)

VC应用程序框架

VC应用程序框架
下拉加载更多内容 ↓