最近有个需求,要用android 来驱动外部usb摄像头。emmmmmmm......  港真,突然听到这么个需求,有点蒙~~于是google github转有没有类似需求的文章。诶嘿 还真有。 还有开源的项目。项目地址:传送门。

事前要检测摄像头是不是好用。这个apk能直接驱动usb摄像头。 下载链接: 传送门 。但是这个apk找不到源码诶。

接下来就按照readme中的介绍开始测试demo。好久不用eclipse啦  就只用android studio(AS)做的测试

1.git或者直接下载zip 把源码搞到本地。然后用AS打开项目。划重点了。。项目要配合NDK。ndk的配置方法大家自行搜索,本文就不在多说这块内容。

在AS内打开项目后。会有多个usbCameraTest 的module。 每个mudule 里面有不同的内容,拍照、 视频、设置亮度等等。但是一般能拿到摄像头的预览内容 剩下的都好说了。

2.接下来 随便run个module 开始测试能不能驱动自己的测试摄像头。我选的usbCameraTest3来做的测试。

期间遇到的问题

1.ndk版本要用r14 的如果用其他版本的会有各种莫名其妙的问题。用r14版本就稳了。我用的是r14b的版本。下载地址:传送门。

2.点击页面上的开关button 报错 could not open camera:err=-1  。  在libuvccamera/src/main/jni/Application.mk 中 将NDK_TOOLCHAIN_VERSION := 4.9 的注释放开后,重新编译。

3.再次点击页面上的开关button。页面还不出preview。依旧一片黑。咋子个问题哦。。这时候 注意logcat里面的输出问题。

这是摄像头支持的分辨率,但是在java代码中默认设置的是:

这项目中默认的 宽高比好像和摄像头支持的不一样诶。emmm 是真的不一样。将项目中的宽高比改为摄像头支持的随便一组。再次尝试运行~~~~。bingo~~preview成功出来了。。撒花撒花。

等等等等~~

preview确实出来了。但是需求可不是单单纯纯的看就完事儿了。。我们需要视频的二进制流来做图像处理才行啊。

在源码中继续翻。在AbstractUVCCameraHandler 类中 找到了

曙光就在眼前了。将这ByteBuffer 转成byte[] 。 做图像的基本数据格式就满足了。将该方法改造下。放到自己需要的地方做个回调。需要的数据就出来了。

我是用着数据做人脸分析的。把数据放进去 图像中其实是有人脸的,但是分析人脸的接口返回的数据是没人脸。。。。。。脑袋一晃  发现这事儿没这么简单。 人脸识别的api 需要 二进制流的灰度图(NV21格式数据)。但是摄像头出的数据是不是NV21格式的呢???? 在AbstractUVCCameraHandler 类中。

哇 真滴是 ~~~找这设置图像输出格式真是费了老鼻子劲儿了。在这设置成NV21 格式就好了。

在这还有个坑。第一家人脸识别sdk用 YUV420SP格式的输出数据能做识别。第二家人脸识别sdk就需要NV21 格式的了。在次 用usb摄像头做识别的同学要注意了。

到此~~需求的基本内容算是搞定了。。。奖励自己下 晚饭加个肯德基手枪腿!!

android usb 摄像头 分辨率,Android 驱动USB摄像头相关推荐

  1. android调用相机分辨率,Android菜鸟笔记-获取摄像头像素值

    前言: 获取摄像头的像素值,通过获取相机设置中支持拍照的最大宽度和最大高度就可算到摄像头的像素值了,当然跟手机厂商标称的还是有差别的.比如标称200W的通过计算1200*1600=1920000=19 ...

  2. android 外接屏幕分辨率,Android获取屏幕分辨率,有大神帮忙解决一下吗?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 在开发手机的应用程序时,除了底层对API的掌握之外,屏幕分辨率的概念也是相当的重要的,而且在当今,各家手机生产厂商的手机屏幕都大同小异(不过,也就几种), ...

  3. 怎样删除usb计算机连接网络打印机驱动,USB无法识别打印机的解决办法和教程

    现在绝大部分常用打印机都是USB接口,常用型号连接到USB接口,系统一般都能默认识别并安装驱动:不常用型号打印机和精简操作系统一般也都能识别出打印机,但需要手动下载或是用光盘安装打印机驱动,打印机方可 ...

  4. Android图片适配分辨率,Android多分辨率适配总结

    1. 使用dp单位 2. 在需要适配的地方使用引用,在不同的最小屏幕和像素密度的文件夹里面创建一份对应的尺寸.例如: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi, sw320 ...

  5. android刘海屏幕分辨率,Android全面屏刘海适配

    maxAspectRatio 根据谷歌兼容性(CTS)标准要求,应用必须按以下方式中的任意一种,在AndroidManifest.xml中配置方可全屏显示,否则将以非全屏显示. 方式一:配置支持最大高 ...

  6. android webview设置分辨率,Android WebView 设置参考

    mWebView.setHorizontalScrollBarEnabled(false);//水平不显示 mWebView.setScrollBarStyle(WebView.SCROLLBARS_ ...

  7. android camera设置分辨率,Android Camera2预览输出大小

    我正在尝试使用Camera2 API通过ImageReader(YUV_420_888格式)设置相机预览.首先,我需要选择支持的预览尺寸: StreamConfigurationMap scmap = ...

  8. android camera(四):camera 驱动 GT2005

    关键词:android  camera CMM 模组 camera参数  GT2005 摄像头常见问题 平台信息: 内核:linux 系统:android 平台:S5PV310(samsung exy ...

  9. 终于搞定android驱动USB摄像头了!

    终于搞定android驱动USB摄像头了! 多亏了stackoverflow看到的一篇帖子,其中有几句关键的话,然后顺藤摸瓜解决了问题. 帖子大意: 讨论的前提是你的USB摄像头是UVC兼容的(如今大 ...

最新文章

  1. Intellij IDEA的下载和使用(针对学生的免费使用计划)
  2. iOS - 切换图片/clip subview/iCarousel
  3. 区分Debug版还是Relase版
  4. linux 高性能读书笔记之通用socket地址
  5. Java_FileInputStream_读一个文件
  6. ROS学习笔记10(创建一个ROS消息和服务)
  7. RubyCritic:一款不错的检测代码质量工具
  8. VS里面关于.cpp文件与.cu文件混合编译问题---不要在.cpp文件声明核函数(__device__()和global__())
  9. 数据库表里面加表中的数据
  10. Spring整合log4j日志组件(转)
  11. zzuli OJ 1047: 对数表
  12. RK3228开发之gc2145芯片手册分析
  13. android textview html font标签不好用
  14. Docker 配置加速器
  15. Zookeeper-Paxos-屁民的故事-内含视频讲解
  16. C++-OpenCV(1)-连通区域
  17. Transformer12
  18. 虚拟机无法连接到图形服务器,vmware vsphere client无法连接到服务器
  19. 【动手学深度学习】Task05笔记汇总
  20. 九、Unity编辑器开发之Gizmos

热门文章

  1. SAP HCM PY 个税累计方案
  2. 云视频会议产品Boom介绍(转载)
  3. 如何在线快速解压文件?
  4. php字符值函数,php从指定ASCII值返回字符函数chr()
  5. Java找到1-1000以内所有可以被3整除并可以被7整除的数。
  6. 五款你没听过却很好用的优质软件,建议低调收藏
  7. 9.1 爬虫及爬行方式
  8. 使用vagrant工具来管理和创建虚拟机
  9. Live2D Web端实现
  10. mysql的报错日志哪里看_mysql错误日志