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

发布者:MindfulBeing最新更新时间:2017-09-24 来源: eefocus关键字:数码相机  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(%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中函数及其参数的详细说明,可以在相机制造商的英文网站上从开发工具一览中找到。


关键字:数码相机  SDK  图像采集  应用程序 引用地址:基于数码相机SDK开发图像采集应用程序

上一篇:40纳米以下先进工艺主导晶圆代工市场增长趋势
下一篇:机会很多 问题也不少 中国半导体产业还有哪些选择

推荐阅读最新更新时间:2024-05-03 01:43

Pebble手表下月将公布SDK 允许第三方应用开发
      【搜狐IT消息】北京时间3月17日消息,据国外媒体报道,智能手表制造商Pebble公司今天宣布,该公司将在今年四月份第二周公布其软件开发工具包(Software Developer Kit),其中包括了可以让开发者为这款智能手表开发第三方应用软件的工具。   作为Kickstater众投平台有史以来最为成功的项目,Pebble智能手表得到了超过6.9万名投资者的青睐,成功融资1000万美元以上。Pebble智能手表发明者Eric Migicovsky表示,Pebble软件开发工具包正在开发中。他承诺,在未来,这款设备99%的SDK应用程序接口(Application Programming Interfaces)将出
[手机便携]
图像采集压缩卡在数字化装甲指挥系统中的应用
【摘 要】图像采集压缩卡在数字化装甲指挥系统中有着广阔的应用前景,本文介绍了它应用于该系统的理论依据、技术实现以及具体功能,并依据实践,对图像采集压缩卡的功能提出了改进建议。 关键词:图像压缩 图像处理 小波变换 1 引 言   数字化部队对战场信息的需求是巨大的,图像信息直观、生动,其作用是显而易见的。各种视觉信息是战略战术决策的重要依据,它们使军事指挥员仿佛长了千里眼,能够运筹帷幄,决胜千里。现在,图像通信已经从图文传真、静态图像传输发展到活动图像信息传输和多媒体通信等多种形式。其中,静态图像传输一直受到军事通信界的青睐,原因是它有以下突出优点:占用频带窄。它能够利用原来电报电话业务所用的有线/无线窄带信道来传送实时的
[模拟电子]
<font color='red'>图像采集</font>压缩卡在数字化装甲指挥系统中的应用
基于ARM920T处理器核的图像采集系统设计
  引言   随着微电子技术和软件技术的发展,嵌入式技术也有了长足的进步。因此,基于嵌入式技术的图像数据采集与存储监控系统以其直观、方便、信息内容丰富的特点,广泛应用于许多场合。   处理器性能的提高,接口传输数据能力的增强,特别是未来高容量存储器的出现,图像监控系统的小型化、多功能化是易于实现的,嵌入式技术引入图像监控系统后,两个问题需要解决,一是灵活的图像监控系统结构调整,二是适合监控规范、集图像和信号检测与控制一体的交互式软件的设计。   1 系统平台的搭建   1.1 硬件平台的搭建   ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的统称,还可以认为
[单片机]
基于ARM920T处理器核的<font color='red'>图像采集</font>系统设计
INDEMIND双目惯性模组SDK支持ROS平台 打通部署的最后一环
目前,全球机器人市场持续增长,据IFR(国际机器人联合会)数据显示,2018年全球服务机器人市场规模达到92.5亿美元,较2017年增速32.3%,服务机器人市场呈现快速发展趋势。伴随人工智能技术的逐步成熟,人机协作的不断深入发展,机器人产品应用不断扩展,全球机器人将迎来新一轮的增长。 自创立之初,INDEMIND便一直致力于计算机视觉技术的研发与应用创新,旗下自研的双目视觉惯性模组及高精度Vi-SLAM算法已应用于扫地机器人、服务机器人、穿戴计算等多个领域,展现出深厚的技术优势与产品竞争力。 双目视觉惯性模组是INDEMIND推出的首款普惠SLAM开发者的产品,其采用“视觉+IMU”多传感器融合架构,内置高精度自研Vi-SL
[机器人]
基于NiosII的视频采集与DVI成像研究及实现
  摘 要: 采用FPGA作为视频采集控制和图像处理芯片,配置NiosII软核,在FPGA片内完成图像处理和图像显示控制,简化了硬件电路和软件程序的设计。在FPGA片内编写视频采集时序,并配置NiosII控制软核,模拟视频数据经视频解码芯片输出ITU-RBT.656格式数据送入FPGA,通过时序控制和NiosII软核把视频解码数据依序存储在SSRAM中,并进行裁剪、交织、颜色处理。   视频采集是进行图像及图形处理的第一步,目前视频采集系统一般由FPGA和DSP组成,FPGA作为视频采集控制芯片,DSP作为图像处理与成像控制芯片 。随着FPGA技术的发展,片内的逻辑单元越来越多,片内的DSP资源也越来越丰富,因此可直接在FPGA
[嵌入式]
基于NiosII的视频采集与DVI成像研究及实现
数码相机…再见!
改变可能会来得很快,让具冲击性的新产品比我们所预期的更快过时,数字相机就是一个最明显的例子… 很难相信,iPhone在今年6月刚庆祝上市十周年…不过笔者在这里并非想要讨论这款产品,或是改变了大众生活的一般智能型手机,相关的思路与更多观点,读者们应该在其他很多地方都看得到。 例如《华尔街日报》(The Wall Street Journal)的一篇文章“从音乐到地图,苹果的iPhone如何改变了商业”(From Music to Maps, How Apple’s iPhone Changed Business),就是在探讨iPhone对个人生活之影响的不错观点;这篇聚焦商业的文章,副标题是“Apple的iPhone催生了全
[家用电子]
苹果开放App Store应用程序预购功能:马里奥尝鲜
苹果今天宣布,现在所有的开发者现在都可以在App Store进行应用程序预购,去年发布的iOS版超级马里奥是第一款支持该功能的游戏,在今天之后,所有的开发者都可以利用该功能在App Store中对其应用进行预购。 图片来自网络   开发者可以设定不超过90天的预购期,需要注意的是预购只支持新的应用程序,而不支持现有的应用程序。苹果在Connect博客上概述了更多内容:   在主页上,单击我的应用程序,选择应用程序,然后选择左侧栏中的定价和可用性。如果您的应用程序从未在App Store上发布,您将看到“预购订单”功能。   选择可用于预购的程序,选择一个日期以发布您的应用程序进行下载,然后单击右上角的保存。发布日期必须提前至少
[手机便携]
W801的SDK无法成功驱动W25Q128的解决方法
一.问题概述 关于使用SPI总线驱动外置的25qxx系列Flash。使用SDK中写好的wm_fls_gd25qxx.c驱动只能驱动GD25Q128,而驱动常用的华邦(Winbond)w25q128时会出现无法成功读取Flash ID, 读到的是0x0或者0xfffffff 导致驱动失败。 二.修改方法 对wm_fls.c文件下的tls_spifls_read_id函数做如下修改: static int tls_spifls_read_id(u32 * id) { u32 cmd; int err; cmd = FLS_CMD_READ_DEV_ID; *id = 0; //将这个发送命令的字节数改
[单片机]
W801的<font color='red'>SDK</font>无法成功驱动W25Q128的解决方法
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved