摘 要: 通常传统自动气象站只能采集常规的气象数据, 如: 温度、湿度、风力等, 而无法采集自动气象站当地的高分辨率图像信息, 通过对奥林巴斯数码相机进行研究, 采用奥林巴斯提供的CAMEDIA SDK 3. 3 开发套件, 设计了一套基于高分辨数码相机的自动气象站图像采集和传输系统。系统通过自动站的高分辨率数码相机远程采集图像, 并通过网络传输到数据中心, 实现了自动气象站对当地图像信息的采集与传输。着重介绍分析了数码相机在系统中的应用, 并实现了图像数据的自动采集功能。
在气象观测中经常需要通过自动气象站采集当地的天气、环境等图像信息供气象分析使用, 而通常传统自动气象站只采集温度、湿度、风速等常规气象信息, 而对于现场空气质量、能见度等信息的采集却无能为力。系统设计的自动气象站除了以上常规气象数据外, 还能够采集高清晰图像, 并通过网络传输至数据中心, 用以分析当地的空气质量、能见度等气象情况。
1 自动气象站图像采集传输系统
自动气象站图像采集传输系统由户外自动数据采集站和数据中心构成。自动数据采集站负责多种气象数据和现场图像数据的采集, 自动站系统采用ARM 为的主机, 通过RS 485 总线控制载有高分辨率相机的云台移动方位。高分辨率数码相机通过USB 数据总线与主机相连, 拍摄的图像数据可通过TCP/ IP网络或WiFi 网络传输至数据中心。数据中心通过网络通信远程控制自动站的运行, 并定时接收远程自动站的数据。系统总体结构框图如图1 所示。
2 数码相机在系统中的应用
数码相机作为一种目前常见的消费类商品, 其基本工作原理是利用CCD 光耦器件将光信号转变为电信号, 经过A/ D 转换、数据压缩等处理后经串口或USB口在PC 端应用程序控制下将图片( 多为JPEG 格式)传送到PC 机的硬盘中。目前PC 端的应用程序都由相机制造商所提供。很少有人注意到一些数码相机制造商为开发人员提供相对丰富的SDK( software devel2 opment kit) 资源, 便于有关人员利用数码相机进行图像采集和监测方面的开发工作。OLYMPUS 提供的CAMEDIA SDK 3. 3 开发套件有两种, 一种是Active2X控件版本; 一种是DLL 动态链接库文件版本。Active2X控件版本需要系统装有OLYMPUS 提供的RYE 控件, 该方法在软件发布时比较麻烦, 通常都采用DLL 动态链接库文件的方法。本文的例程均采用隐式的加载时链接DLL 方法实现, 因此除了必须的* . dll文件外, 还需要DLL 的* . h 文件和* . lib 文件。
2. 1 SDK 结构图
CAMEDIA SDK 3. 3 原理框图如图2 所示。SDK控制层位于应用程序与指定SDK 控制层( 对于OLYMPUS2C350 相机该层为C350 SDK 控制层) 之间, 它的主要作用是接收应用程序的Connect( ) 指令,同时将指定相机SDK 控制层调入内存区; 接收DisCon2nect( ) 指令, 同时释放指定相机SDK 控制层所占内存区。指定相机SDK 层位于SDK 控制层下, 本层支持所有访问相机的函数, 并将函数执行结果状态码( 即错误代码) 经SDK 控制层上传给应用程序。指定相机控制层的下层为驱动程序层。驱动程序用于与外部设备直接打交道。
2. 2 SDK 函数分类
SDK 内的函数按照作用类型一般可以分为以下几类:
( 1) 相机初始化函数主要包括Connect( ) 和Dis2Connect( ) 。
( 2) 相机控制函数主要包括Capture( ) , Preview( ) ,SetPropCameraID ( ) , SetCaptureProp ( ) , SetPropOpti2calZoom( ) , SetPropIsoSpeed ( ) , SetPropFocusMode ( ) ,SetLcdMode( ) , SetPropFlash( ) , SetPropFocusPosition( ) ,SetPropCameraTime( ) 。
( 3) 图片管理函数有SetPropCurr entPicture ( ) ,
ErasePicture( ) , EraseLast( ) , EraseAll( ) 。
( 4) 图片信息获取函数有GetPropPictCount( ) , Get2PropRemainCount ( ) , GetPictureProp ( ) , GetPicTagProp( ), GetPropPicSize ( ) 。
( 5 ) 文件传递函数有GetPicture ( ) ,Upload Picture( ) 。
( 6) 其他类型的函数包括电池电量数据获取函数、操作返回码获取函数等。
3 SDK 用法的一个典型实例
下面举一个拍摄图片的简单实例使读者大体了解编程的一般模式, 其过程如图3 所示。
首先是相机初始化即打开相机, 然后读取目前相机中拍摄方面的参数设置, 根据需要修改某些参数设置,接着拍摄照片, 照片, 关闭相机释放内存。
例程如下:
以下为采用VC+ + 开发的SDK 用法的典型例程 :
( 1) 相机初始化
( 2) 读取并设定相机的焦距
( 3) 拍摄照片并到本地
4 结 语
本文阐述了自动气象站图像采集系统的构成和主要功能, 着重介绍了奥林巴斯公司的SDK 开发工具CAMEDIA SDK 3. 3, 并对利用它开发相机的应用程序进行了详细介绍。系统的一些其他功能实现都可以参考现成的资料, 因此没做详细介绍。奥林巴斯CAMEDIA SDK 3. 3 中函数及其参数的详细说明, 可以在相机制造商的英文网站上从开发工具一览中找到。该系统经过运行测试, 完全满足自动气象站对气象数据和高分辨率现场图像数据的要求。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。