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

2016-02-19 17:40 93 1 收藏

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

【 tulaoshi.com - 编程语言 】

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

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

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

  1 SDK结构图

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

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

来源:http://www.tulaoshi.com/n/20160219/1615783.html

延伸阅读
标签: Java JAVA基础
Hibernate是对JDBC的轻量级对象封装,Hibernate本身是不具备Transaction处理功能的,Hibernate的Transaction实际上是底层的JDBC Transaction的封装,或者是JTA Transaction的封装,下面我们详细的分析: Hibernate可以配置为JDBCTransaction或者是JTATransaction,这取决于你在hibernate.properties中的配置: #hibe...
标签: 生活常识
如何保养数码相机   与传统照相机一样,数码照相机也存在防水、防尘、防震等问题,对于日常的保养知识一定要加以了解,并对照相机的保养和养护等给予足够的重视。 严格按照说明书操作 数码照相机的精密的仪器,操作复杂。因此,必须严格按照说明书的操作步骤进行操作,否则极易出现故障和死机等现象。 保护存储...
全flash的网站,片头动画做的很绚丽。感觉很好! http://www.samsungvluu.co.kr
数码相机行业近年来发展迅猛,据统计2004年全球的数码相机收入已经达到了240亿美元, 依目前形势看上升势头仍将继续,经预测到2009 年这个数字将增长到310亿美元 。统计数据表明,2004年的数码相机收入前三名地区分别是欧洲、美国和日本。 在未来的日子里,数码相机市场的增长点将向亚洲和其他地方转移。随着产品的不断普及,目前日...
标签: 摄影入门
数码相机提供的白平衡功能导致很多装在镜头上的外置彩色滤镜失去了作用。不过,这里有一些滤镜仍然很有用,而且你应该考虑把它们收入摄影包中。 1. UV镜 2. 偏振镜 3. 渐变灰镜 4. 中性灰镜 "Golden Sunrise Redrock National Preserve" captured by nathan mccreery UV镜 现在很多镜头都有优秀的UV镀膜,所以再装一块UV镜...

经验教程

710

收藏

73
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部