Camera摄像头帧数据转为bitmap

android camera2 拍摄yuv图片,并将yuv 保存成Bitmap的方法 预览分辨率为:1280*720,这是获取的 YUV_420_888格式对应的yuv数据log日志,从log看看plane1和plane2 的getPixelStride 是2, 说明间隔的原色才是有效的元素。//获取yuv图像的平面个数,plane0返回的是y分量。即plane1的行内索引为0,2,4,6..对应的是u分量中间插入的是v分量,且数组长度是1280*720/2 -1。yuv420p(例如yv12):每两行的4个字节对应一个像素的y,每两行的2个字节(uv)对应前面的一个像素的y。 阅读详情

Camera摄像头帧数据转为bitmap

帧数据转为bitmap

Android下摄像头预览数据默认为 ImageFormat.NV21 格式的,通过onPreviewFrame(byte[] data, Camera camera)返回的byte[]无法直接转为bitmap,可以使用YuvImage来转为bitmap,代码如下:

 @Override
    public void onPreviewFrame(byte[] data, Camera camera) {
        if (camera == null) return;
        try{
         SimpleDateFormat sdf = new SimpleDateFormat("HHMMSS");
          //相机预览获取到的data数据不能直接转为bitmap存储,因为该数据是YUV格式的,需要进行数据转换
        Camera.Size size = camera.getParameters().getPreviewSize();//获得预览图像设置的尺寸
        YuvImage img = new YuvImage(data, ImageFormat.NV21, size.width, size.height, null);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        img.compressToJpeg(new Rect(0, 0, size.width, size.height), 80, stream);
        Bitmap bitmap = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());
        stream.close();
        }catch(Exception ex){
			Log.e("Camera PreviewFrame","Error:"+ex.getMessage());
		}
        }
关于YuvImage

YuvImage包含YUV数据并提供将YUV数据的区域压缩为Jpeg的方法。 YUV数据应作为单字节数组提供,而不管其中的图像平面数量。
目前仅支持ImageFormat.NV21和ImageFormat.YUY2。

要压缩YUV数据中的矩形区域,使用者必须按左,上,宽度和高度指定区域

compressToJpeg 方法

将YuvImage中的矩形区域压缩为jpeg.目前仅支持ImageFormat.NV21和ImageFormat.YUY2 ,参考上述代码

参考:

Android 关于获取摄像头帧数据: https://muyu114.iteye.com/blog/1563011#comments
[android摄像头获取图像——第三弹]: https://www.cnblogs.com/mengyan/archive/2012/09/01/2666641.html
[Android图像格式类及图像转换方法]: https://www.jianshu.com/p/88ec0f403bf9
[[Android平台之不预览获取照相机预览数据帧及精确时间截]]:https://www.cnblogs.com/HackingProgramer/p/4062119.html

Android NV21与Bitmap相互转换 可实时添加水印 获取相机回调数据 @Override public void onPreviewFrame(byte[] data, Camera camera) { //这里的data便是原始视频数据 } 将视频数据转化为bitmap public Bitmap nv21ToBitmap(byte[] nv21, int width, int height){ if (yuvType == null){ yuvType = new 阅读详情

相关推荐

camera1 实时预览取帧

安卓相机5.0以后加入了camera2类,但低版本还是用之前的camera1,所以直接选择camera1来开发! 直奔主题,在开发中遇到的坑! 1,安卓提供了camera.setPreviewCallbac这个回调写出这个回调后,在onPreviewFrame这里拿到摄像头获取的视频帧! //cameraInst 相机对象cameraInst.setPreviewCallback(ne

enjoyGai的博客 3786

android摄像头开发,将Camera.onPreviewFrame里面的data转换成bitmap

最近在做的几个项目都和摄像头有关,其中不乏图像识别的,但是拍照识别有时候感觉还是有些low,直接把画面一对准自己就识别了多好,就像zxing扫描二维码一样,于是上网查了很多资料,找到了 需要给camera对象设置一个 Camera.PreviewCallback,在这个回调中实现一个方法onPreviewFrame(byte[] data, Camera camera) 当然如果我们设置cam

qiguangyaolove的博客 2万+

Android 原生的人脸识别Camera+FaceDetector示例

人脸识别google有自带api,Androoid 原生的人脸识别是利用相机的摄像功能和android.media.FaceDetector这个类来实现的 1、android.hardware.camera 1.1 简介 Camera 类用于设置图像捕获设置、开始/停止预览、抓拍图片和检索帧以进行视频编码 Camera的源码 1.2 人脸识别步骤: 1. 初始化相机并设置相机参数; 2. 设置预览监听setPreviewDisplay(); 3. 开始预览startPreview(); 4. 实现预览的接口

zhang106209的博客 8263

Android Camera onPreview中byte[]快速转换为Bitmap<耗时仅需3~4ms>

Android Camera onPreview中byte[]快速转换为Bitmap 在以前对帧率要求不高时,一直使用BitmapFactory.decodeByteArray来进行处理,耗时非常可观,在只开前摄的情况下处理图像,耗时达到了260ms,下面是以前的处理方式: YuvImage yuvimage = new YuvImage( yuvData, Image

BlueGoDisplay的博客 1万+

byte[],Bitmap,YuvImage,Drawable 旋转、缩放、相互转化

好东西要转载,让等多人知道,这是我一直依赖的信念 1、byte->Bitmap 在相机开发中,Camera获取到摄像头每一帧的图像数据byte[],有时候需要把它转为Bitmap @Override public void onPreviewFrame(final byte[] data, Camera camera) { camera.setPreviewCallb...

人生代码 ---- 公众号 1572

点云配准实战:用DGCNN+Transformer+SVD搞定3D模型对齐(附PyTorch代码)

本文详细介绍了基于深度学习的点云配准实战方法,重点解析了Deep Closest Point (DCP)模型。该模型融合了DGCNN、Transformer和可微分SVD三大核心模块,能够端到端地预测点云间的刚性变换,有效克服传统ICP算法对初始位置敏感、易陷入局部最优的缺点。文章提供了完整的PyTorch代码实现、ModelNet40数据集处理、训练策略及显存优化技巧,旨在帮助开发者在机器人、自动驾驶等领域实现精准的3D模型对齐。

weixin_29061041的博客 153

nv21转Bitmap

//从相机中取一帧照片 CameraPreviewData cameraPreviewData = camelist.getCameraPreviewData(); //这一帧照片的格式 ...

打工仔的博客 649

Win10下YOLOv8环境搭建避坑指南:从CUDA 11.6到cuDNN配置全流程

本文详细介绍了在Windows 10系统下搭建YOLOv8环境的完整流程,包括CUDA 11.6和cuDNN的配置步骤,以及常见问题的解决方案。通过硬件准备、软件安装、环境验证和性能优化等环节,帮助开发者高效完成YOLOv8环境配置,提升目标检测项目的开发效率。

defi6farmer的博客 224

Android不显示Camera视频获取摄像头视频帧数据

1、在Activity界面代码中: private var mCamera: Camera? = null private val mWidth = GwApplication.DEFAULT_REMOTE_WIDTH_EXT private val mHeight = GwApplication.DEFAULT_REMOTE_HEIGHT_EXT private var imgData: ImageData = ImageData(mWidth, mHeight) /** * Camera初始化 **

bluefire1126的博客 2572

有史以来最小的GIF/png/jpg/jpeg

昨天我对图像进行了 base64 编码,这样我就可以将它发送到 CouchDB 以测试我正在为客户编写的一些代码。它让我想起了我之前在远程服务器上设置 cookie 时所做的事情。基本上,一个小的 PHP 脚本被放在远程服务器上,它接受几个 GET 参数并根据它们的值设置一些 cookie。然后脚本输出一个 1x1 的透明 GIF。本地服务器上的 PHP 脚本生成了一个 IMG 标签,该标签链接到该图像并根据本地服务器上的 COOKIES 设置参数。

凌凌1301的博客 1417

Procedural modeling

What is procedural modeling? One content generation option is modeling buildings, plants, clouds, cities, and worlds using an underlying system of rules. 1 Procedural Modeling: Grammars A rule-based generative system loosely organized as: ...

qq_24505417的博客 711

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

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

weixin_29000417的博客 1768

保姆级教程:用R语言自动化处理FAERS季度数据(从文件合并到删除废弃Case)

本文提供了一份详细的R语言教程,指导如何自动化处理FAERS季度数据,包括文件合并和删除废弃Case。通过使用tidyverse、fs等R包,构建健壮的自动化流程,特别适合药物安全监测领域的数据分析师。教程涵盖环境准备、智能合并多季度数据、精准删除废弃Case等关键步骤,并提供了错误处理与日志记录的实用技巧。

weixin_42701915的博客 124

获取camera1的帧图片

import android.content.Context; import android.graphics.Bitmap; import android.graphics.Rect; import android.hardware.Camera; import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import andro.

qmdluck的博客 955

研一脑电小白日记 之 EEGLAB预处理实战指南

本文为脑电研究新手提供了一份详尽的EEGLAB预处理实战指南。从MATLAB与EEGLAB环境搭建、使用NeuracleEEGFileReader插件导入BDF格式数据开始,逐步讲解了电极定位、滤波、降采样、ICA去伪迹等核心步骤,旨在帮助初学者高效完成脑电数据预处理,为后续分析奠定坚实基础。

weixin_29230649的博客 556

ST7789T3与CST816D驱动全解析,面试技巧第11篇:嵌入式面试场景问答 10 连发。

SPI模式下,SCLK、MOSI、CS、DC、RST为必需引脚;8080模式下需连接D0-D7、WR、RD等信号线。CST816D触摸芯片通常通过I2C接口通信,需连接SCL、SDA及INT(中断)引脚。确保电源引脚(VCC、GND)稳定供电,ST7789T3典型工作电压为3.3V。显示异常时检查时序参数,如SPI时钟频率(建议≤40MHz)、数据建立时间。初始化流程需发送一系列命令序列,包括设置像素格式、扫描方向、帧率控制等。扫描方向(MADCTL)可调整显示旋转角度,需根据实际硬件布局配置。

a967gsvj的博客 373

ARCore 使用 SceneForm 框架 —— Image(通过 acquireCameraImage 获取)转 Bitmap

Sceneform 框架中 Image(通过 acquireCameraImage 获取)转 Bitmap 调试工程的时候,提出需要接管 sceneform 框架的视频数据,说白了就是接管帧数据,也就意味着,处理完帧数据以后,需要手动转为可以显示的图片资源;网上一大片 ImageView 转 bitmap 什么鬼的,已经不是帧数据了,要想从 sceneform 框架中获取当前摄像头的帧数据可以通过...

右手的鼠标 2720

解决TexStudio编写LaTeX论文引用文献问题:正文引用处出现[?],参考文献也不显现

当我们利用LaTeX编写论文时,可能会出现引用参考文献时正文引用处出现?号,肯能的原因及解决方案如下: 问题一 忘记在\end{document}前面放\bibliographystyle{样式}和\bibliography{参考文献bib文件名}: \bibliographystyle{plain} \bibliography{sample} 其中, LaTeX 标准选项及其样式共有以下8种: plain,按字母的顺序排列,比较次序为作者、年度和标题. unsrt,样式同plain,只是按照引用的先后

左手の明天的博客 9527

Android 关于获取摄像头帧数据

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

luochao436的专栏 669

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android中onPreviewFrame中的帧数据转bitmap格式

关于将onPreviewFrame中获取到的帧数据转成图片 最近做项目的时候使用了虹软的活体检测加人证核验sdk 后面第三方需要传一张拍摄现场照片,本来很多进行人脸比对的sdk都是图片比对,那直接拿过来传过去,搬搬砖就很舒服,但是人家虹软毕竟大公司,他们采用的是视频流的进行对比,刚开始想着在对比成功是直接调用摄像头抓拍一张,但是发现在红软占用摄像头的情况下很难抓拍,然后就找到了onPreviewFrame这个方法,具体的可以去看看官网,了解他的使用和触发,然后贴上我的帧数据转bitmap处理方式 下面展示一

qq_36294999的博客 1669

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

把手机摄像头换成一段视频:安卓虚拟摄像头 Xposed 实现全拆解

android_virtual_cam 是一款基于 Xposed 的安卓虚拟摄像头模块,支持安卓 5.0 及以上系统。它能在完全不改动目标应用代码的前提下,把摄像头预览画面和拍照结果悄悄替换成指定视频与图片,对应用开发者、测试工程师和安全研究人员都很有价值。本文会从落地步骤讲起,再逐层拆开 Hook 原理、MediaCodec 硬解码和避坑要点,帮你把原理吃透。 ## 一、先回答一个问题:虚拟摄

gitblog_00992的博客 697

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

全网最简单实用Android摄像头开发,同时预览多个摄像头,双目摄像头,同时打开手机前后摄像头(红外摄像头、人脸识别、活体检测、Android Camera、缩放、焦距、旋转、镜像、截图保存)

如果你受够了网上那些乱七八糟的代码,你可以了解下我这个,能同时打开多个摄像头,在界面上预览,并且可以取得摄像头数据,byte[] 转为 Bitmap,保存为 jpg图片。

EnVon的专栏 9442

安卓虚拟摄像头怎么实现?用Xposed Hook在3个关键位置偷换视频流

安卓虚拟摄像头,听起来很玄乎,其实目标就一句话:让别的应用把一段视频当成摄像头画面。本文围绕Xposed Hook机制,从拦截点的选择、视频数据的输送,再到部署和排坑,把虚拟摄像头的实现思路完整讲透。就算你之前没写过任何 Hook 代码,读完后也能对这套"偷梁换柱"的玩法心中有数。 ## 先还原一个让人抓狂的测试现场 假设你在做直播类 App 的测试:需要反复验证不同分辨率、不同光线下"美颜滤

gitblog_00886的博客 961

Android使用技巧:将当前摄像头预览图像保存为Bitmap对象 & 保存到本地

今天,carson将结合示例讲解:如何将当前摄像头预览图像保存为Bitmap对象 & 保存到本地

Carson带你学Android 3436

Android camera2 API 获取相机的 YUV 元数据预览

参考资料: Android Camera 一 源码路径 android camera2 拿到的yuv420数据到底是什么样的? Camera2 YUV420_888 android-Camera2Basic源码逻辑流程解析Android Camera2 相机预览、获取数据 Android Camera2采集摄像头原始数据并手动预览 googlesamples/android-Camer...

qq_38907791的博客 6312
上一篇: Android 图像格式ImageFormat 主要参数值说明
下一篇: Android Activity 启动模式
K_Hello
博客等级 码龄12年 33粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值