DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1174|回复: 0
打印 上一主题 下一主题

[待整理] 基于数码相机SDK开发图像采集应用程序

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-12 22:06:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
数码相机作为一种目前常见的消费类商品,其基本工作原理是利用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(%26;amp;Camera,TRUE,0L,(VOIDPTR %26;amp;TakePictInfo); //修改需要变动的参数
ret=DC280_ControlTakePicture(%26;amp;Camera,FALSE,(VOIDPTR%26;amp;TakePictInfo); //拍照
ret=DC280_TakePicture(%26;amp;Camera,TRUE,%26;amp;ThumbImgInfo,%26;amp;GenericPictInfo,
(VOIDPTR)%26;amp;SpecificPictInfo); //可以根据需要加上文件传递函数等
DC210_CloseCamera(CameraData); //关闭相机
其中DC280_ControlTakePicture的第二个参数为GetSetFlag。当其为true时表示从相机中获取设置参数;为false时表示将改动过的参数输送给相机。DC280_Camera的数据结构如下: typedef struct {DC210_PortNum PortNum; DC210_BitRate BitRateDC210_CameraTypeCamType; BOOL CameraOpenFlag; VOIDPTR InternalUseOnly; }DC280_Camera ; 本文通过柯达公司的DC280 SDK开发工具对SDK及利用它开发相机应用程序进行了简单介绍。其他公司SDK的使用方法基本类似,只是函数名称略有不同,使用方法是一致的。SDK中函数及其参数的详细说明,可以在相机制造商的英文网站上从开发工具一览中找到。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-18 22:41 , 耗时 0.098837 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表