技术领域
本发明属于医疗电子技术领域,尤其涉及一种基于安卓系统的人眼屈光度抓图方法
背景技术
在当前医疗电子技术领域中,软件通常采用Linux+QT系统,在这种系统上计算人眼屈光度需要抓取摄像头预览的帧作为输入,实现方法是在软件框架里构建两路输出通道,一路用作屏幕预览,另一路作为人眼屈光度计算。而安卓(Android)系统采用了严格分层和模块化的软件框架,很难像一般Linux应用系统那样简单的设计两路输出来抓取图片,安卓系统上摄像头预览通道的帧数据不能同时用作人眼屈光度计算,只能设计特别的方法来抓取图片。鉴于上述缺陷,实有必要设计一种基于安卓系统的人眼屈光度抓图方法。
发明内容
本发明所要解决的技术问题在于:提供一种基于安卓系统的人眼屈光度抓图方法,来解决安卓系统应用框架不支持两路输出来抓取图片的问题。
为解决上述技术问题,本发明的技术方案是:一种基于安卓系统的人眼屈光度抓图方法,该方法在人眼屈光度抓图装置上实现,人眼屈光度抓图装置包括壳体、摄像模块、控制模块、显示模块、触摸屏、安卓系统、数量为6组的红外灯、测距模块,所述的摄像模块、控制模块、显示模块、触摸屏、红外灯、测距模块均与壳体固连,所述的控制模块分别与摄像模块、显示模块、触摸屏、红外灯、测距模块电相连,所述的安卓系统写入控制模块内,该人眼屈光度抓图方法包括以下步骤:
步骤1):开机,安卓系统通过控制模块直接启动摄像模块;
步骤2):手持并移动壳体,保证被检测者的眼睛被显示在显示模块上;
步骤3):点击触摸屏上的“开始”按钮,开始检测;
步骤4):前后移动壳体,通过测距模块检测并定位被检测者的瞳孔与摄像模块之间的距离为1米;
步骤5):1米距离定位完成后,开始自动抓图,同时,6组红外灯开始依次点亮,每组红外灯亮灯时间为200ms,在每组红外灯亮灯的200ms内,摄像模块将会获得六帧图像;
步骤6):当第一组红外灯亮灯时,摄像模块获取感光数据,并传送给控制模块内部的图像信号处理器;
步骤7):摄像模块预览回调线程从图像信号处理器中取出一帧原始raw数据放入环形队列Que(raw)。
步骤8):摄像模块适配接口从环形队列Que(raw)中取出一帧原始raw数据;
步骤9):对步骤8)取出的帧作处理,将原始raw数据转YUV数据以及图像尺寸裁减;
步骤10):将步骤9)处理过后的帧放入另一个环形队列Que(yuv);
步骤11):从环形队列Que(yuv)中取出处理过后的YUV数据;
步骤12):从第一组红外灯亮开始获取每一帧图像,200ms内总共能获取六帧图像,图像信号处理器取第三帧和第四帧中的任意一帧图像给安卓系统的应用层做屈光度计算;
步骤13):当第二组红外灯到第六组红外灯亮时,重复步骤7到步骤12)的操作步骤,完成人眼屈光度抓图。
有益效果:该基于安卓系统的人眼屈光度抓图方法,通过软件设计两类环形队列对图像信号处理器的帧进行缓冲,然后对图像格式尺寸进行变换后即可通过安卓系统的回调接口返回给应用层进行屈光度计算,无需软件应用层支持两路同时输出来抓取图像,简单、可靠、效率高。
附图说明
图1示出本发明流程图
图2示出本发明人眼屈光度抓图装置结构示意图
壳体 1 摄像模块 2
控制模块 3 显示模块 4
触摸屏 5 安卓系统(图中未示出)
红外灯 6 测距模块 7
具体实施方式
实施例1
如图1、图2所示,一种基于安卓系统的人眼屈光度抓图方法,该方法在人眼屈光度抓图装置上实现,人眼屈光度抓图装置包括壳体1、摄像模块2、控制模块3、显示模块4、触摸屏5、安卓系统、数量为6组的红外灯6、测距模块7,所述的摄像模块2、控制模块3、显示模块4、触摸屏5、红外灯6、测距模块7均与壳体1固连,所述的控制模块3分别与摄像模块2、显示模块4、触摸屏5、红外灯6、测距模块7电相连,所述的安卓系统写入控制模块3内,该人眼屈光度抓图方法包括以下步骤:
步骤1):开机,安卓系统通过控制模块直接启动摄像模块;
步骤2):手持并移动壳体,保证被检测者的眼睛被显示在显示模块上;
步骤3):点击触摸屏上的“开始”按钮,开始检测;
步骤4):前后移动壳体,通过测距模块检测并定位被检测者的瞳孔与摄像模块之间的距离为1米;
步骤5):1米距离定位完成后,开始自动抓图,同时,6组红外灯开始依次点亮,每组红外灯亮灯时间为200ms,在每组红外灯亮灯的200ms内,摄像模块将会获得六帧图像;
步骤6):当第一组红外灯亮灯时,摄像模块获取感光数据,并传送给控制模块内部的图像信号处理器;
步骤7):摄像模块预览回调线程从图像信号处理器中取出一帧原始raw数据放入环形队列Que(raw)。
步骤8):摄像模块适配接口从环形队列Que(raw)中取出一帧原始raw数据;
步骤9):对步骤8)取出的帧作处理,将原始raw数据转YUV数据以及图像尺寸裁减;
步骤10):将步骤9)处理过后的帧放入另一个环形队列Que(yuv);
步骤11):从环形队列Que(yuv)中取出处理过后的YUV数据;
步骤12):从第一组红外灯亮开始获取每一帧图像,200ms内总共能获取六帧图像,图像信号处理器取第四帧图像给安卓系统的应用层做屈光度计算;
步骤13):当第二组红外灯到第六组红外灯亮时,重复步骤7到步骤12)的操作步骤,完成人眼屈光度抓图。
实施例2
如图1、图2所示,一种基于安卓系统的人眼屈光度抓图方法,该方法在人眼屈光度抓图装置上实现,人眼屈光度抓图装置包括壳体1、摄像模块2、控制模块3、显示模块4、触摸屏5、安卓系统、数量为6组的红外灯6、测距模块7,所述的摄像模块2、控制模块3、显示模块4、触摸屏5、红外灯6、测距模块7均与壳体1固连,所述的控制模块3分别与摄像模块2、显示模块4、触摸屏5、红外灯6、测距模块7电相连,所述的安卓系统写入控制模块3内,该人眼屈光度抓图方法包括以下步骤:
步骤1):开机,安卓系统通过控制模块直接启动摄像模块;
步骤2):手持并移动壳体,保证被检测者的眼睛被显示在显示模块上;
步骤3):点击触摸屏上的“开始”按钮,开始检测;
步骤4):前后移动壳体,通过测距模块检测并定位被检测者的瞳孔与摄像模块之间的距离为1米;
步骤5):1米距离定位完成后,开始自动抓图,同时,6组红外灯开始依次点亮,每组红外灯亮灯时间为200ms,在每组红外灯亮灯的200ms内,摄像模块将会获得六帧图像;
步骤6):当第一组红外灯亮灯时,摄像模块获取感光数据,并传送给控制模块内部的图像信号处理器;
步骤7):摄像模块预览回调线程从图像信号处理器中取出一帧原始raw数据放入环形队列Que(raw)。
步骤8):摄像模块适配接口从环形队列Que(raw)中取出一帧原始raw数据;
步骤9):对步骤8)取出的帧作处理,将原始raw数据转YUV数据以及图像尺寸裁减;
步骤10):将步骤9)处理过后的帧放入另一个环形队列Que(yuv);
步骤11):从环形队列Que(yuv)中取出处理过后的YUV数据;
步骤12):从第一组红外灯亮开始获取每一帧图像,200ms内总共能获取六帧图像,图像信号处理器取第三帧图像给安卓系统的应用层做屈光度计算;
步骤13):当第二组红外灯到第六组红外灯亮时,重复步骤7到步骤12)的操作步骤,完成人眼屈光度抓图。
本发明不局限于上述具体的实施方式,本领域的普通技术人员从上述构思出发,不经过创造性的劳动,所做出的种种变换,均落在本发明的保护范围之内。