论文部分内容阅读
摘要:该文采用C#2.0,利用DirectX框架和佳能SDK进行高质量贴纸照系统的设计和开发,系统包括照片输入子系统、照片存储子系统及照片处理子系统三个子系统,同时结合一般游戏的引擎模型和Managed DirectX框架,设计开发了一个完整的娱乐系统模型。该系统,具有良好的人机交互界面,而且最终照片处理非常科学,具有很广的应用价值。
关键词:DirectX;Canon SDK;游戏引擎
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)10-2374-04
The Design of High Quality Photosticker Based on DirectX and Canon SDK
SU Qian-min, WU Shi-ju
(Shanghai University of Engineering and Science, College of Electrical and Electronic Engineering Shanghai 201620,China)
Abstract:In this paper, a high quality sticker system is built with C# 2.0 under the framework of DirectX and canon SDK. There are three subsystems: a photo input subsystem, photo storage subsystem and photo processing subsystem. Furthermore the general game engine model and the managed DirectX framework is combined, thus a complete entertainment system model is realized. Finally this system has a good interactive interface and the final photo is scientific ,which will have a wide application.
Key words:direct x; Canon SDK; Game Engine
目前應用广泛的的贴纸照系统是通过对人物图像的获取,并为其添加精美修饰图案,最终合成图案输出成照片的多媒体软件。由于人们对于照片质量及系统娱乐性的要求不断地提高,国内现有的大多系统已经不能满足用户的要求。
1概述
贴纸照系统是通过图像获取设备(如:摄像头、照像机、摄像机等),对人物影像的获取,将其数字化存储到计算机中,并为其添加精美修饰图案,最终合成图案输出成照片的多媒体软件。目前市面流行的大头贴机器很多,但大部分是用摄像头,处理主要是半身像,而且背景是固定的,不能调节,质量相对很差。该文阐述利用DirectX技术提高图像、音频的处理能力,增强用户交互性,开发出一套充满娱乐性的贴纸照系统,可广泛应用于照片处理的小型PHOTOSHOP系统。
贴纸照系统就是一项多媒体系统,它集成了图象获取、图象处理、音频处理、实时用户操作处理,具用很强的集成性、实时性和交互性。为了开发出这样高集成性、实时性、交互性的多媒体系统,微软的DirectX组件提供了一整套解决方案。DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染、交互式音乐和环境音效等高要求应用开发服务的。
该文采用C#2.0,利用DirectX框架和佳能SDK进行高质量贴纸照系统的设计,采用DirectX框架,建立娱乐系统模型,提高系统的人机交互性,并采用边缘检测算法以及种子填充算法,提高了最终图片的质量。
2系统设计
由于贴纸照系统运作流程可以分为照片获取、存储、编辑输出这三个步骤,所以本系统将分解为三个子系统进行开发(图1),三个子系统分别为照片输入子系统、照片存储子系统及照片处理子系统。三个子系统之间存在松耦和的依赖关系,这样可以使得整个系统方便的更变输入方式、存储方式及编辑输出流程,而不会过多地影响其它子系统的运作。系统会变得易扩展、易维护。
根据功能需求,系统硬件采用了基于数据库的网络系统,包括数据库服务器、专门用于用户照片获取的客户端以多台用于用户编辑和照片输出的客户端。系统采用佳能照相机进行照片获取,并存储到数据库服务器中,然后用户可以通过编辑终端(触摸屏和小键盘)用来编辑照片,编辑好的照片采用相纸,利用网络打印机打印。
贴纸照系统的业务流程一般包括选择分割方式、拍照、选择照片、编辑照片、设置照片放置方式、打印照片。照片拍摄由系统控制相机开启,用户点击鼠标,拍摄照片;照片编辑根据用户自己喜好,编辑照片,具体包括背景、边框、图案编辑(各有10个不同样式)。最后照片输出查看,并保存到数据库。
2.1照片输入模块设计
照片输入子系统主要功能为:照片输入设备的控制并提供设备控制接口。
1)输入设备控制接口
图2系统引擎框架图
2.3照片存储模块设计
存储子系统主要功能为:提供存储管理数据接口和实现。
1)数据存储管理接口
由于数据存储方式多样,对于单机的贴纸照系统使用磁盘存储已经达到需求。但是对于分布式的贴纸照系统就需要运用于网络数据库系统作为存储系统。所以为了使系统快速适应不同的应用环境,本系统设计一个数据存储管理接口,使得其它系统无需依赖存储系统的具体实现。
接口设计代码:
interface IPhotoStorageControl
{void SaveData(string PhotoId);
Stream Find(string PhotoId);
void DeleteData(string PhotoId);
…}
2)数据存储管理实现
本系统是分布式环境,可以通过运用Ado.net数据访问组件实现Ms SqlServer等其它数据库系统的存储方式。
3关键技术实现
3.1原始图像获取
Canon Digital camera SDK(CD-SDK)是佳能公司提供的一个开发接口,它可让用户可以控制佳能数码相机和获取由相机生成的数据。CD-SDK被设计成为提供标准方式来控制和获取不同佳能相机模块及其生成的数据。
通过使用CD-SDK来创建软件,可以将佳能数码相机的功能集成到软件中去。通过使用CD-SDK也可以将程序集成到相机中来扩展相机的功能。
CD-SDK提供了一个接口给用户,使用户可以获得佳能数码相机拍摄的照片。CD-SDK使用户可以将照片从相机传输到电脑或存储设备。也可以用来开发将RAW格式的照片转换成为常用的格式的程序。可以开发使用电脑来控制数码相机的程序。
SDK中函数调用时需要进行传递的参数主要是设备句柄。设备句柄是用来表示设备的唯一标识。相机控制是通过有序的调用一系列函数完成的。基本过程为初始化相机,然后拍照,最后释放资源,图表示了控制相机的基本过程。初始化相机包括了调用CDStartSDK、CDEnumDeviceReset、CDGetDeviceCount、CDEnumDeviceNext、CDOpenSource、CDEnterReleaseControl方法,分别表示启动SDK模式、重置设备、得到可用设备数、遍历设备、得到设备句柄、进入远程控制模式。拍照时调用了CDSelectReleaseDataKind、CDRelease、CDGetReleasedData方法,分别表示选择数据类型、拍照、得到数据。在完成拍照工作释放资源时,将会调用到CDExitReleaseControl、CDCloseSource、CDEnumDeviceRelease、CDFinishSDK方法,分别表示退出远程控制模式、释放设备句柄、释放设备、退出SDK模式。完整流程图如图3所示。
1)原始图像
3)种子填充算法图像
图4图像处理
4结论
该文采用C#2.0,利用DirectX框架和佳能SDK进行高质量贴纸照系统的设计,实现了由背景、前景、图案构成的编辑照片模式,采用DirectX框架,建立娱乐系统模型,提高系统的人机交互性,用P/Invoke技术实现佳能数码相机的远程控制,并采用边缘检测算法以及种子填充算法提取人物轮廓并进行填充,提高了最终图片的质量,经用户使用,效果非常明显,极具推广价值。
参考文献:
[1]王明福,齐治文.基于DirectX的游戏动画技术研究[J].计算机工程与设计,2005(4):940-943.
[2] Tom Miller. Managed DirectX 9[M].Sams Publishing,2003(10).
[3]刘伟华,张尤赛,王敏. .Net框架下Direct3D程序的快速开发[J].电脑开发与应用,2004(12):34-36 .
[4]刘军,姚子建.用边缘检测算子实现图像边缘检测[J].福建电脑,2006(2):117-118.
[5]陈曙,辛阳.利用数码相机SDK开发图像采集应用程序[J].电子技术应用,2003(7):21-22.
关键词:DirectX;Canon SDK;游戏引擎
中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)10-2374-04
The Design of High Quality Photosticker Based on DirectX and Canon SDK
SU Qian-min, WU Shi-ju
(Shanghai University of Engineering and Science, College of Electrical and Electronic Engineering Shanghai 201620,China)
Abstract:In this paper, a high quality sticker system is built with C# 2.0 under the framework of DirectX and canon SDK. There are three subsystems: a photo input subsystem, photo storage subsystem and photo processing subsystem. Furthermore the general game engine model and the managed DirectX framework is combined, thus a complete entertainment system model is realized. Finally this system has a good interactive interface and the final photo is scientific ,which will have a wide application.
Key words:direct x; Canon SDK; Game Engine
目前應用广泛的的贴纸照系统是通过对人物图像的获取,并为其添加精美修饰图案,最终合成图案输出成照片的多媒体软件。由于人们对于照片质量及系统娱乐性的要求不断地提高,国内现有的大多系统已经不能满足用户的要求。
1概述
贴纸照系统是通过图像获取设备(如:摄像头、照像机、摄像机等),对人物影像的获取,将其数字化存储到计算机中,并为其添加精美修饰图案,最终合成图案输出成照片的多媒体软件。目前市面流行的大头贴机器很多,但大部分是用摄像头,处理主要是半身像,而且背景是固定的,不能调节,质量相对很差。该文阐述利用DirectX技术提高图像、音频的处理能力,增强用户交互性,开发出一套充满娱乐性的贴纸照系统,可广泛应用于照片处理的小型PHOTOSHOP系统。
贴纸照系统就是一项多媒体系统,它集成了图象获取、图象处理、音频处理、实时用户操作处理,具用很强的集成性、实时性和交互性。为了开发出这样高集成性、实时性、交互性的多媒体系统,微软的DirectX组件提供了一整套解决方案。DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染、交互式音乐和环境音效等高要求应用开发服务的。
该文采用C#2.0,利用DirectX框架和佳能SDK进行高质量贴纸照系统的设计,采用DirectX框架,建立娱乐系统模型,提高系统的人机交互性,并采用边缘检测算法以及种子填充算法,提高了最终图片的质量。
2系统设计
由于贴纸照系统运作流程可以分为照片获取、存储、编辑输出这三个步骤,所以本系统将分解为三个子系统进行开发(图1),三个子系统分别为照片输入子系统、照片存储子系统及照片处理子系统。三个子系统之间存在松耦和的依赖关系,这样可以使得整个系统方便的更变输入方式、存储方式及编辑输出流程,而不会过多地影响其它子系统的运作。系统会变得易扩展、易维护。
根据功能需求,系统硬件采用了基于数据库的网络系统,包括数据库服务器、专门用于用户照片获取的客户端以多台用于用户编辑和照片输出的客户端。系统采用佳能照相机进行照片获取,并存储到数据库服务器中,然后用户可以通过编辑终端(触摸屏和小键盘)用来编辑照片,编辑好的照片采用相纸,利用网络打印机打印。
贴纸照系统的业务流程一般包括选择分割方式、拍照、选择照片、编辑照片、设置照片放置方式、打印照片。照片拍摄由系统控制相机开启,用户点击鼠标,拍摄照片;照片编辑根据用户自己喜好,编辑照片,具体包括背景、边框、图案编辑(各有10个不同样式)。最后照片输出查看,并保存到数据库。
2.1照片输入模块设计
照片输入子系统主要功能为:照片输入设备的控制并提供设备控制接口。
1)输入设备控制接口
图2系统引擎框架图
2.3照片存储模块设计
存储子系统主要功能为:提供存储管理数据接口和实现。
1)数据存储管理接口
由于数据存储方式多样,对于单机的贴纸照系统使用磁盘存储已经达到需求。但是对于分布式的贴纸照系统就需要运用于网络数据库系统作为存储系统。所以为了使系统快速适应不同的应用环境,本系统设计一个数据存储管理接口,使得其它系统无需依赖存储系统的具体实现。
接口设计代码:
interface IPhotoStorageControl
{void SaveData(string PhotoId);
Stream Find(string PhotoId);
void DeleteData(string PhotoId);
…}
2)数据存储管理实现
本系统是分布式环境,可以通过运用Ado.net数据访问组件实现Ms SqlServer等其它数据库系统的存储方式。
3关键技术实现
3.1原始图像获取
Canon Digital camera SDK(CD-SDK)是佳能公司提供的一个开发接口,它可让用户可以控制佳能数码相机和获取由相机生成的数据。CD-SDK被设计成为提供标准方式来控制和获取不同佳能相机模块及其生成的数据。
通过使用CD-SDK来创建软件,可以将佳能数码相机的功能集成到软件中去。通过使用CD-SDK也可以将程序集成到相机中来扩展相机的功能。
CD-SDK提供了一个接口给用户,使用户可以获得佳能数码相机拍摄的照片。CD-SDK使用户可以将照片从相机传输到电脑或存储设备。也可以用来开发将RAW格式的照片转换成为常用的格式的程序。可以开发使用电脑来控制数码相机的程序。
SDK中函数调用时需要进行传递的参数主要是设备句柄。设备句柄是用来表示设备的唯一标识。相机控制是通过有序的调用一系列函数完成的。基本过程为初始化相机,然后拍照,最后释放资源,图表示了控制相机的基本过程。初始化相机包括了调用CDStartSDK、CDEnumDeviceReset、CDGetDeviceCount、CDEnumDeviceNext、CDOpenSource、CDEnterReleaseControl方法,分别表示启动SDK模式、重置设备、得到可用设备数、遍历设备、得到设备句柄、进入远程控制模式。拍照时调用了CDSelectReleaseDataKind、CDRelease、CDGetReleasedData方法,分别表示选择数据类型、拍照、得到数据。在完成拍照工作释放资源时,将会调用到CDExitReleaseControl、CDCloseSource、CDEnumDeviceRelease、CDFinishSDK方法,分别表示退出远程控制模式、释放设备句柄、释放设备、退出SDK模式。完整流程图如图3所示。
1)原始图像
3)种子填充算法图像
图4图像处理
4结论
该文采用C#2.0,利用DirectX框架和佳能SDK进行高质量贴纸照系统的设计,实现了由背景、前景、图案构成的编辑照片模式,采用DirectX框架,建立娱乐系统模型,提高系统的人机交互性,用P/Invoke技术实现佳能数码相机的远程控制,并采用边缘检测算法以及种子填充算法提取人物轮廓并进行填充,提高了最终图片的质量,经用户使用,效果非常明显,极具推广价值。
参考文献:
[1]王明福,齐治文.基于DirectX的游戏动画技术研究[J].计算机工程与设计,2005(4):940-943.
[2] Tom Miller. Managed DirectX 9[M].Sams Publishing,2003(10).
[3]刘伟华,张尤赛,王敏. .Net框架下Direct3D程序的快速开发[J].电脑开发与应用,2004(12):34-36 .
[4]刘军,姚子建.用边缘检测算子实现图像边缘检测[J].福建电脑,2006(2):117-118.
[5]陈曙,辛阳.利用数码相机SDK开发图像采集应用程序[J].电子技术应用,2003(7):21-22.