基于Andorid平台的OpenCL图像处理方法技术

技术编号:15251186 阅读:47 留言:0更新日期:2017-05-02 14:27
本发明专利技术公开一种基于Android平台的OpenCL图像处理方法,将OpenCL与Android系统结合起来,实现图像的处理。由于Android平台具有开放性,可以挣脱运营商的束缚,丰富的硬件选择等特点给第三方开发商一个十分宽泛自由的环境。OpenCL扩展了GPU用于图形生成之外的能力,它可以实现图像和视频等的高效处理。因此本发明专利技术可以将OpenCL的开发框架应用于Android平台,探究OpenCL在GPU中关于图像方面的一些应用,实现图像的高效处理。

OpenCL image processing method based on Andorid platform

The invention discloses a OpenCL image processing method based on the Android platform, which combines the OpenCL and the Android system to realize the image processing. Due to the openness of the Android platform, you can get rid of the shackles of operators, rich hardware choices and other characteristics of the third party developers to a very broad and free environment. OpenCL extends the capabilities of GPU for graphics generation, which enables efficient processing of images and video. Therefore, the OpenCL framework can be applied to the development of Android platform to explore the OpenCL in the GPU on the image of some applications to achieve efficient image processing.

【技术实现步骤摘要】

本专利技术涉及图像处理领域,尤其涉及一种基于Andorid平台的OpenCL图像处理方法。
技术介绍
当下人们对手机的要求一再提高。除了基本的通信要求,大多数手机已能实现其他复杂功能。此外,随着多媒体通信的发展,图像与视频的传输与处理,已成为新一代移动设备的研究热点。目前关于Andorid系统的应用已经非常多了,而且有继续增长的势头,而作为一直都是热门的图像处理,其在Android系统下的表现能力也受到人们的高度关注。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由AndyRubin开发,主要支持手机。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。由于具有开放性,可以挣脱运营商的束缚,丰富的硬件选择等特点,得到了广泛的应用并被人们青睐。OpenCL(全称OpenComputingLanguage,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。
技术实现思路
本专利技术公开一种基于Android平台的OpenCL图像处理,将OpenCL与Android系统结合起来,实现图像的处理。利用OpenCL扩展了GPU用于图形生成之外的能力,它可以实现图像和视频等的高效处理。因此本专利技术可以将OpenCL的开发框架应用于Android平台,探究OpenCL在GPU中关于图像方面的一些应用,实现图像的高效处理。为了实现上述目的,本专利技术采用如下方案:基于Android平台的OpenCL图像处理方法,包括步骤如下:步骤一:起始页面的空间设计;步骤二:照相机功能的设计与实现;步骤三:搭建NDK环境;步骤四:OpenCL编程;步骤五:OpenCL在Android手机中运行的初步实践。所述步骤一具体包括以下步骤:S1:运用RelativeLayout以相对方式布局,所述RelativeLayout优选为图像按钮参数、对视图进行预览的参数和显示拍照后图片参数的组合;S2:对照相机界面显示进行设置;优选对所述图像的宽度和高度进行设置;S3:对按钮进行设置;优选对所述按钮的宽度和高度进行设置,还包括对所述按钮的位置进行设置;S4:对预览界面进行设置;优选对所述界面宽度、高度和位置进行设置;S5:对照片显示界面进行设置;优选对所述照片显示界面的宽度、高度和位置进行设置。所述步骤二具体包括以下步骤:S1:调用Camera的open()函数打开相机;优选打开所述相机的后置摄像头,如需打开所述相机的指定摄像头,为所述函数open()传入所述指定摄像头ID;S2:调用Camera的getParameters()函数获取拍照参数,返回一个Camera.Parameters对象;S3:调用Camera.Parameters对象函数设置拍照参数;S4:调用Camera的setPreviewDisplay(SurfaceHolderholder)函数设置使用哪个SurfaceView来显示取景图片,调用Camera的startPreview()函数开始预览取景;S5:调用Camera的takePicture()函数进行拍照;S6:调用Camera的stopPrview()结束取景预览,并调用release()函数释放资源,从而结束程序。所述步骤三具体包括以下步骤:S1:修改mk文件;S2:创建so,并由NDK自动将so和java应用一起打包成apk。所述步骤四具体包括以下步骤:S1:获得设备ID;优选的通过调用函数clGetDeviceIDs()来获取所述设备ID;S2:获取上下文;优选的通过调用函数clCreateContext()来获得所述上下文;S3:创建一个OpenCL命令队列;优选通过调用函数clCreateCommandQueue()来创建一个所述OpenCL命令队列;S4:用源代码缓存创建程序;优选的通过调用函数clCreateProgramWithSource()或clCreateProgramWithBinary()来创建所述程序对象;S5:构建OpenCL程序;优选通过调用函数clBuildProgram()来构建所述OpenCL程序;通过调用函数clGetProgramBuildInfo()返回每个设备的构建信息;S6:创建内核对象;优选的通过调用函数clCreateKernel()创建一个所述内核对象;S7:创建缓存对象;优选的通过调用函数clCreateBuffer()来创建所述缓存对象;S8:将输入缓存写入设备端;优选的通过调用函数clEnqueueWriteBuffer()来实现写命令,将所述输入缓存写入所述设备端;S9:对计算内核传递实参;优选的通过调用函数clSetKernelArg()来为所述计算内核传递所述实参;S10:获得在设备上执行内核的工作组的最大值;优选的通过调用函数clGetKernelWorkGroupInfo()来获得所述执行内核的最大工作组的值;S11:执行内核函数;优选的通过调用函数clEnqueueNDRangeKernel()或clEnqueueTask()来排队执行计算所述内核;S12:等待命令执行结束且获取计算结果;优选的通过调用函数clFinish()来等待所述命令执行结束并通过调用函数clEnqueueReadBuffer()来获取所述OpenCL内核计算函数的所述计算结果。所述步骤五具体包括以下步骤:S1:确认设备是否支持OpenCL;优选使用OpenCL-Z软件对MEIZU-Mx4Pro手机设备进行OpenCL检测;S2:找到opencl库;S3:建立动态库;S4:引用OpenCL头文件;S5:按照普通NDK程序运行。本专利技术的有益效果是将OpenCL与Android系统结合起来,实现图像的处理。由于Android平台具有开放性,可以挣脱运营商的束缚,丰富的硬件选择等特点给第三方开发商一个十分宽泛自由的环境。OpenCL扩展了GPU用于图形生成之外的能力,它可以实现图像和视频等的高效处理。因此本专利技术可以将OpenCL的开发框架应用于Android平台,探究OpenCL在GPU中关于图像方面的一些应用,实现图像的高效处理。附图说明图1为本专利技术照相机界面设置流程图。图2为本专利技术释放摄像头流程图。具体实施方式下面结合附图对本专利技术具体实施例做出详细说明。具体实施例操作步骤:第一步:起始页面的空间设计起始页面中的控件是运用RelativeLayout的相对布局,RelativeLayout将它的View视图以相对的方式进行排放,这取决于它的属性设置:以相对方式排放。本起始页面的布局如下:一个ImageButton,一个SurfaceView与一个Imageview组合在一个Relati本文档来自技高网...

【技术保护点】
基于Android平台的OpenCL图像处理方法,包括步骤如下:步骤一:起始页面的空间设计;步骤二:照相机功能的设计与实现;步骤三:搭建NDK环境;步骤四:OpenCL编程;步骤五:OpenCL在Android手机中运行的初步实践。

【技术特征摘要】
1.基于Android平台的OpenCL图像处理方法,包括步骤如下:步骤一:起始页面的空间设计;步骤二:照相机功能的设计与实现;步骤三:搭建NDK环境;步骤四:OpenCL编程;步骤五:OpenCL在Android手机中运行的初步实践。2.根据权利要求1所述图像处理方法,其特征在于:所述步骤一具体包括以下步骤:S1:运用RelativeLayout以相对方式布局,所述RelativeLayout优选为图像按钮参数、对视图进行预览的参数和显示拍照后图片参数的组合;S2:对照相机界面显示进行设置;优选对所述图像的宽度和高度进行设置;S3:对按钮进行设置;优选对所述按钮的宽度和高度进行设置,还包括对所述按钮的位置进行设置;S4:对预览界面进行设置;优选对所述界面宽度、高度和位置进行设置;S5:对照片显示界面进行设置;优选对所述照片显示界面的宽度、高度和位置进行设置。3.根据权利要求1所述图像处理方法,其特征在于:所述步骤二具体包括以下步骤:S1:调用Camera的open()函数打开相机;优选打开所述相机的后置摄像头,如需打开所述相机的指定摄像头,为所述函数open()传入所述指定摄像头ID;S2:调用Camera的getParameters()函数获取拍照参数,返回一个Camera.Parameters对象;S3:调用Camera.Parameters对象函数设置拍照参数;S4:调用Camera的setPreviewDisplay(SurfaceHolderholder)函数设置使用哪个SurfaceView来显示取景图片,调用Camera的startPreview()函数开始预览取景;S5:调用Camera的takePicture()函数进行拍照;S6:调用Camera的stopPrview()结束取景预览,并调用release()函数释放资源,从而结束程序。4.根据权利要求1所述图像处理方法,其特征在于:所述步骤三具体包括以下步骤:S1:修改mk文件;S2:创建so,并由NDK自动将so和java应用一起打包成apk。5.根据权利要求1所述图像处理方法,其特征在于:所述步骤四具体包括以下步骤:S1:获得设备ID;优选的通过调用函...

【专利技术属性】
技术研发人员:褚孝鹏毛治东赵文浩李松梁李发德
申请(专利权)人:天津光电通信技术有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1