由于Android下摄像头预览数据只能  ImageFormat.NV21 格式的,所以解码时要经过一翻周折.

Camera mCamera = Camera.open();Camera.Parameters p = mCamera.getParameters();p.setPreviewFormat(ImageFormat.NV21);/*这是唯一值,也可以不设置。有些同学可能设置成 PixelFormat 下面的一个值,其实是不对的,具体的可以看官方文档*/mCamera.setParameters(p);mCamera.startPreview();

下面是解码核心部分:

@Overridepublic void onPreviewFrame(byte[] data, Camera camera) {        Size size = camera.getParameters().getPreviewSize();        try{YuvImage image = new YuvImage(data, ImageFormat.NV21, size.width, size.height, null);if(image!=null){ByteArrayOutputStream stream = new ByteArrayOutputStream();image.compressToJpeg(new Rect(0, 0, size.width, size.height), 80, stream);Bitmap bmp = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());stream.close();}}catch(Exception ex){Log.e("Sys","Error:"+ex.getMessage());}}

代码很简单。就是把YUV数据转成 Bitmap 就行了,系统提供 YuvImage 类。

yuv420sp转RGB                                                                       

/*** 解码* * @param rgb* @param yuv420sp* @param width* @param height*/static public void decodeYUV420SP(int[] rgb, byte[] yuv420sp, int width, int height) {final int frameSize = width * height;for (int j = 0, yp = 0; j < height; j++) {int uvp = frameSize + (j >> 1) * width, u = 0, v = 0;for (int i = 0; i < width; i++, yp++) {int y = (0xff & ((int) yuv420sp[yp])) - 16;if (y < 0)y = 0;if ((i & 1) == 0) {v = (0xff & yuv420sp[uvp++]) - 128;u = (0xff & yuv420sp[uvp++]) - 128;}int y1192 = 1192 * y;int r = (y1192 + 1634 * v);int g = (y1192 - 833 * v - 400 * u);int b = (y1192 + 2066 * u);if (r < 0)r = 0;else if (r > 262143)r = 262143;if (g < 0)g = 0;else if (g > 262143)g = 262143;if (b < 0)b = 0;else if (b > 262143)b = 262143;rgb[yp] = 0xff000000 | ((r << 6) & 0xff0000) | ((g >> 2) & 0xff00) | ((b >> 10) & 0xff);}}}

我是天王盖地虎的分割线                                                                 

Android -- 获取摄像头帧数据解码相关推荐

  1. Android 关于获取摄像头帧数据解码

    由于Android下摄像头预览数据只能  ImageFormat.NV21 格式的,所以解码时要经过一翻周折. Camera mCamera = Camera.open(); Camera.Param ...

  2. android关于获取摄像头帧数据转成图片

    第一部分: 由于Android下摄像头预览数据只能  ImageFormat.NV21 格式的,所以解码时要经过一翻周折. Camera mCamera = Camera.open(); Camera ...

  3. 安卓获取摄像头帧率_Android 关于获取摄像头帧数据

    第一部分: 由于Android下摄像头预览数据只能 ImageFormat.NV21 格式的,所以解码时要经过一翻周折. Camera mCamera = Camera.open(); Camera. ...

  4. 【UE Unreal Camera】【保姆级教程二】手把手教你通过UE获取摄像头帧数据

    概述   在UE 摄像头教程一中,我们已经通过Unreal自带的媒体播放器打开了摄像头,并且将摄像头的数据展示在了游戏画面中.当然这只是最基本的功能,一般情况下,我们需要对摄像头的画面数据进行处理,比 ...

  5. Camera摄像头帧数据转为bitmap

    Camera摄像头帧数据转为bitmap 文章目录 Camera摄像头帧数据转为bitmap 帧数据转为bitmap 关于YuvImage **compressToJpeg 方法** 帧数据转为bit ...

  6. android获取摄像头视频帧数据

    1.思路 一.通过android的Camera.setPreviewCallback(PreviewCallback cb)监听回调. 二.此回调函数public void onPreviewFram ...

  7. Qt 中获取摄像头图像数据的方法

    Qt 中获取摄像头图像数据的方法 在 Qt 中提供了 QCamera 类用来操作摄像头.(这里的摄像头指的是电脑上常用的那种 USB 摄像头或网络摄像头,暂时还不支持工业相机.)摄像头获取的实时图像可 ...

  8. c语言编程获取摄像头图像,OpenCV 获取摄像头图像数据并显示

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 用摄像头来获取数据的应用其实并不算太多,最近刚刚好用到,查了下用OpenCV来实现非常方便 ...

  9. android获取摄像头焦距,并调焦

    不废话,上代码 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayo ...

最新文章

  1. Java文件的状态_java中文件的状态
  2. 逃离伪PHP程序员应该做的事
  3. python二级考time库吗_学python第十七节:time库的学习
  4. wxpython 优秀的界面_wxPython 界面设计利器:wxFormBuilder 介绍
  5. 基于java人体检测技术_几篇深度图人体检测论文的实现
  6. swift -- 数组
  7. lintcode :Integer to Roman 整数转罗马数字
  8. mybatis-plus的 mapper.xml 路径配置的坑
  9. 用js实现改变随意改变div属性style的名称和值的结果
  10. 对我国超级计算机的应用,要加强我国超级计算机应用人才储备
  11. 机器学习建模的问题大全
  12. 数字图像处理概述PPT学习1
  13. qq服务器只保留7天文件吗,qq离线文件服务器上的离线文件能保留几天(一般7天)?...
  14. bootstrap3中使用bootstrap-datetimepicker日期插件的用法
  15. Word文档中styles分析
  16. Sai Life Sciences任命COO;Affamed 在华植入首例景深延长型人工晶状体 | 医药健闻
  17. Powershell之MOF后门
  18. 各国语言代码,对于多语言软件非常有用!
  19. 计算机网络专业自考本科难不难,自考本科计算机网络专业科目难吗?
  20. 自定义校验手机号码和电话号码注解

热门文章

  1. python 的按位与 或 异或 运算
  2. 自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6
  3. springboot 参数校验详解
  4. python爬取豆瓣前25个影片内容的正则表达式练习
  5. Laravel 5.4 migrate时报错: Specified key was too long error
  6. Win10安装MySQL5.7.22 解压缩版(手动配置)方法
  7. Vs快捷键设置(可搭配Vim使用)
  8. 赛码网算法: 上台阶 ( python3实现 、c实现)
  9. volatile的适用场景
  10. [转]Windows Phone 7程序设计”完全版电子书可以免费下载了