一种Android平台显微相机通用USB采集图像的方法和装置与流程

文档序号:34729175发布日期:2023-07-07 22:53阅读:164来源:国知局
一种Android平台显微相机通用USB采集图像的方法和装置与流程

本发明属于相机驱动技术或图像采集技术,尤其涉及一种android平台显微相机通用usb采集图像的方法。


背景技术:

1、随着现代技术和仪器的高速发展,在显微观测领域,各种小型化和智能化的终端设备正逐渐代替传统意义上功能相对单一的专业设备,使人们能够在更方便的场景下进行专业显微观测。android系统作为这类终端设备搭载的重要操作系统之一,它能够支持各种usb外围设备和android usb配件完成复杂工作,其中包括国内外相机厂商生产的usb显微相机。

2、android系统本身提供一套完整的适用于即插即用usb相机的服务,并且在android架构的应用程序层为开发者提供相关控制接口,前提是这些相机硬件必须采用标准的android相机api和hidl接口。如公开号为cn113360179a的中国专利公开了一种基于android系统的相机api适配方法、装置、设备及介质,涉及过程优化技术领域。该方法包括:接收启动预置于android操作系统中相机的操作请求;判断相机的硬件级别是否低于预设级别;若低于预设级别,调用相机的第一api,其中,相机的第一api的版本低于第二api的版本;若不低于预设级别,获取调用第二api的历史崩溃次数和历史anr次数;判断历史崩溃次数、历史anr次数之和是否低于预设阈值;若不低于预设阈值,调用第一api;若低于预设阈值,根据评分模型对用户终端进行评估并根据评估后的评分值调用第一api或第二api。再如公开号为cn113986368a的中国专利公开了一种基于linux的相机控制方法、装置、设备及存储介质,该方法包括:通过多媒体服务,接收所述linux系统中应用程序发送的相机控制指令;基于相机源插件,控制相机执行所述相机控制指令对应的操作,并将所述相机的执行结果通过所述相机源插件返回至所述应用程序。本发明通过多媒体服务,接收应用程序发送的相机控制指令,并基于相机源插件使用相机,进而使应用程序可以使用相机,以使在只存在android相机驱动的情况下,应用程序可以使用相机,最终实现linux侧的应用程序能够使用相机设备的目的。

3、但受限于android外接usb相机服务对相机硬件的要求,存在:1)在某些特殊的观测领域或对于多数自研相机而言,无法使用android原生相机api完成usb显微相机图像采集;2)在native层完成对某个或某类usb显微相机的采集图像的方法,实现过程复杂且没有提供统一的驱动或接口,实施或使用起来并不方便。

4、鉴于目前方法存在的以上问题,有必要发明一种可以在android平台下兼容usb显微相机的采集图像的方法,在开发者不需要了解usb显微相机复杂内部工作方式和驱动接口的前提下,实现相机的采集和控制功能,降低二次开发难度,提高开发效率。


技术实现思路

1、本发明的目的在于提供一种android平台显微相机通用usb采集图像的方法,该方法可以实现对不同类型或属性的usb显微相机的采集或控制。

2、本发明提供如下技术方案:

3、一种android平台显微相机通用usb采集图像的方法,所述方法包括以下步骤:

4、(1)基于标准usb传输协议,枚举android平台接入的所有usb设备,通过设备信息筛选出支持的usb显微相机;

5、(2)针对枚举得到的支持的usb显微相机,使用通用的标准usb控制命令完成支持的usb显微相机打开和关闭操作;

6、(3)基于支持的usb显微相机的自身属性和传输协议,适配符合其传输标准的控制协议和采集方式;

7、(4)根据已适配的采集方式,完成支持的usb显微相机的图像采集;其中,在图像采集过程中,根据已适配的控制协议,完成支持的usb显微相机的参数控制。

8、在步骤(1)中,所述支持的usb显微相机的枚举方法为:基于usb设备的pid、vid、名称和属性的设备过滤方法,所述设备过滤方法通过将枚举到的usb设备与预先设置的相机支持信息列表进行匹配,从而得到枚举结果,即支持的usb显微相机。

9、在步骤(2)中,所述完成支持的usb显微相机打开和关闭操作的方法为:使用通用的标准usb传输协议和android linux内核进行命令交互和数据交换,而不区分相机的自身属性和传输协议。

10、在步骤(3)中,所述适配控制协议的方法为:根据支持的usb显微相机是否遵循视频类usb或uvc将其分为普通usb相机或uvc相机,再根据支持的usb显微相机的传输协议是否提供私有接口将数据交换和命令交互方式拆分为通用部分和私有部分;所述适配采集方式的方法为:根据支持的usb显微相机本身和android linux内核对图像采集模式的支持性适配图像采集的方式为:优先尝试使用同步传输iso的方式,其次选择使用批量传输bulk的方式。

11、在步骤(4)中,所述图像采集包括视频图像采集和静态图像采集,视频图像采集用于相机视频流的捕获,静态图像采集用于相机当前图像的捕获。

12、在步骤(4)中,采集的图像存储在第一图像缓存器,经处理后的图像存储在第二图像缓存器,第二图像缓存器输出的图像作为传输到应用程序层的图像;其中,在第一图像缓存器和第二图像缓存器中,已经使用过的图像数据空间进行覆盖再利用作为后续采集的图像或经处理后的图像的载体,不需要开辟新的内存空间。

13、其中,在步骤(4)中,视频图像采集和静态图像采集的配置独立,运行互不影响。另外,为了不影响usb采集效率,提高图像数据的可编辑性以及减轻android终端设备的计算负载,提供了上述针对所采集图像数据的缓存、处理和空间利用机制,经过该套机制输出的图像数据作为最终传输到应用程序层的图像数据:其中,处理是指对缓存的相机原始图像数据(采集的图像)进行格式转换、预处理的过程,空间利用是指将缓存器中标记为已经使用过的图像数据空间进行覆盖再利用,作为后续输入图像数据的载体,而不需要开辟新的内存空间,减少内存消耗。空间利用的具体流程为:图像数据从缓存器输出并经应用程序层使用后不直接销毁,而是存入一个空间有限的回收池,后续在需要为新的输出图像提供内存空间时,优先直接在回收池中覆盖再利用标记为已经使用过的图像数据空间,若回收池为空则开辟新的内存空间。

14、在步骤(4)中,根据已适配的控制协议完成支持的usb显微相机的参数控制的方法为:对于支持的usb显微相机的私有参数或参数的私有部分,使用符合相机特性的私有方法控制;对于非私有参数或参数的非私有部分,使用通用方法控制;所涉及的参数控制的操作包括:目标参数的支持性判断、获取、发送和监听。

15、所述android平台的jni层将支持的usb显微相机具备的所有功能进行组织和调度,实现支持的usb显微相机的核心功能被android应用程序开发者所使用,执行所述的android平台显微相机通用usb采集图像的方法。

16、本发明通过上述架构提供一套固定、方便和有效的android平台显微相机通用usb采集图像的方法。

17、本发明还提供了一种android平台显微相机通用usb采集图像的装置,所述装置包括存储器,处理器以及存储在存储器中并可在处理器上执行的计算机程序,处理器执行计算机程序时实现上述的android平台显微相机通用usb采集图像的方法。

18、与现有技术相比,本发明提出的基于usb标准传输协议,并根据支持的usb显微相机的自身属性和传输协议适配符合其标准的usb控制协议和采集方式的方法,可以在android平台下兼容usb显微相机。本发明所述的方法提供多种图像采集功能,能够独立采集支持的usb显微相机的视频流和静态图像,采集策略优先使用iso传输模式,确保传输的同步性。同时,采集的过程中提供了一套完整的针对所采集图像数据的缓存、处理和空间利用机制,实现在不影响图像数据采集效率的前提下,提高图像数据的可编辑性,并减轻android设备的计算负载。本发明所述的方法提供丰富的参数控制功能。最终,通过良好的封装,使得使用者或开发者在面对不同类型或属性的usb显微相机的采集或控制需求时,能够使用更加统一、直观的方法进行采集和二次开发,而无需了解usb显微相机内部复杂的工作方式和驱动接口,极大地提高开发效率,具有极高的实际应用价值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1