Camera
hipeboy
计划赶不上变化,但不计划永远没有变化!
今天不学习,明天变垃圾!
展开
-
android camera2获取平台人脸识别坐标步骤详解
人脸识别技术已经很广泛了,那么我们如何在我们的应用中集成人脸识别呢?Google平台自带有人脸识别功能,下面我们看看如何实现://人脸识别当然得打开摄像头 cManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); //open camera cManager.openCamera(cId, getCDeviceOpenCallback(), getCHandler()); /** * 初始化并获取相机开原创 2021-02-23 14:01:11 · 1443 阅读 · 1 评论 -
Android Google Lens in Camera
google lens in camera 原文以及翻译:Google Lens in Camera runs within the Android Google Search App (AGSA), which is Google’s main app on Android. Lens SDK is available for download on the Google Lens page. Lens SDK and logo are available for download at Google原创 2020-11-20 11:21:22 · 1609 阅读 · 0 评论 -
android Camera image plane[0] plane[1] plane[2] 详解
都知道拍完照之后都会回调 private ImageReader.OnImageAvailableListener imageAvailableListener= new ImageReader.OnImageAvailableListener() { // 当照片数据可用时激发该方法 @Override public void onImageAvailable(ImageReader reader) {在拿到ImageReader时我们的操作原创 2020-11-19 16:26:41 · 3231 阅读 · 2 评论 -
Android Camera HDR 拍照模式的原理
camera HDR 拍照:(High Dynamic Range Imaging)高动态范围成像1. 什么是HDR?:用来实现比普通数字图像技术更大曝光动态范围(即更大的明暗差别)的一组技术。2. HDR原理:相比普通的图像,可以提供更多的动态范围和图像细节,根据不同的曝光时间的LDR(Low-Dynamic Range)图像,利用每个曝光时间相对应最佳细节的LDR图像来合成最终HDR图像。3. HDR目的:正确地表示真实世界中从太阳光直射到最暗的阴影这样大的范围亮度,现在一般的数码相机和手原创 2020-11-16 14:06:39 · 1916 阅读 · 0 评论 -
Camera acquireLatestImage() 与 acquireNextImage() 的区别
在Camera中获取图片的时候,会遇到acquireLatestImage() 与 acquireNextImage()选择,以下是对这两个方法的解读:acquireLatestImage() 从ImageReader的队列中获取最新的Image ,删除旧images 。 如果没有新图像可用,则返回null 。如果已经close了,那么将不会是最新的数据图像。对于大多情况可以使用acquireNextImage(),它更加适合处理实时数据.。在使用这个方法读取图片的时候,要注意maxImages不能小原创 2020-10-12 11:11:18 · 4251 阅读 · 0 评论 -
Android Camera架构源码分析 - CameraService启动
Android 最初的框架CameraService是在mediaserver进程中注册的,代码如下: //path: frameworks\av\media\mediaserver\main_mediaserver.cpp int main() { sp<ProcessState> proc(ProcessState::self()); //通过defaultServiceManager()注册服务。感兴趣的可以看看这里面的实现原创 2020-10-10 16:08:11 · 1021 阅读 · 0 评论 -
Android R Camera 新增api Concurrent Camera Streaming
Android 11 添加了 API 来查询对同时使用多个摄像头(包括前置摄像头和后置摄像头)的支持。要在运行应用的设备上检查支持情况,请使用以下方法:getConcurrentStreamingCameraIds() 可返回摄像头 ID 组合 Set,这些组合可与有保证的数据流组合并发进行流式传输(如果它们是由同一应用进程配置的)。isConcurrentSessionConfigurationSupported() 可查询摄像头设备是否可以并发支持相应的会话配置。原文如下:Android al原创 2020-08-27 10:01:54 · 1240 阅读 · 0 评论 -
Android Camera 录像时音频焦点处理方法
在Camera Video 开发过程遇到一种情况,后台有音乐播放着,此时如果点击录制视频,无法使后台的播放器暂停,此时就需要设置音频的焦点问题处理音频焦点都是通过AudioManager这个类,如下是获得该类实例的方法:AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);下面介绍音频焦点处理相关的一些方法(不同的Android版本处理音频焦点的方式略有差别,以下内容基于Android 4.4原创 2020-08-18 20:24:46 · 555 阅读 · 0 评论 -
Camera 从零开始的那段时间
时间飞逝,Camera开发也是有2年多了,经过自己努力,从一个菜鸟到”大神“,带引号的”大神“就说说经历吧!那是一个天气晴朗的下午,老大来和我说,Camera部门差人,项目急,让我去帮帮忙,ok,没问题,虽然对Camera一无所知,但是对android开发开始很久了,自认为是没问题的,再说之前还做过二维码扫描,头像上传,人脸识别集成等APP。...原创 2020-07-29 13:59:27 · 297 阅读 · 0 评论 -
QCom Camera XXXX_lib.h的驱动文件配置
直接从代码进行分析:#define START_REG_ARRAY \{ \ {0xfe, 0x00, 0x00}, \}#define STOP_REG_ARRAY \{ \ {0xfe, 0x00, 0x00}, \}#define GROUPON_REG_ARRAY \{ \ {0xfe, 0x00, 0x00}, \}#define GROUPOFF_REG_ARRAY \{ \ {0xfe, 0x00, 0x00}, \}#define INI原创 2020-07-29 10:17:25 · 438 阅读 · 0 评论 -
Camera 的成像原理
景物通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为模拟的电信号,经过 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过 IO 接口传输到 CPU 中处理,通过 LCD 就可以看到图像了。图像传感器(SENSOR)是一种半导体芯片,其表面包含有几十万到几百万的光电二极管。光电二极管受到光照射时,就会产生电荷。目前的 SENSOR 类型有两种:CCD(Charge Couple Device),电荷耦合器件,它是目前高像素类 s原创 2020-07-29 10:13:47 · 639 阅读 · 0 评论 -
Android Camera提升帧率的方法
最近在做项目的时候,需要将Android camera的帧率尽可能提升到30帧/s,测试的过程发现一些特别的情况,camera api 1和camera api2,在不同手机平台上的表现还不相同。Camera api 1camera api1主要有以下两种提升帧率的方法:通过Camera.Parameters进行设置,主要有以下方法setPreviewFpsRange(或setPreviewFrameRate)Camera.Parameters parameters = camera.getPa原创 2020-07-29 09:57:19 · 5971 阅读 · 0 评论 -
Android Camera 曝光
1、概述曝光三要素:光圈大小、快门速度、感光度(ISO)。简单介绍下,光圈值曝光瞬间开孔大小;快门速度指快门开启时间;感光度指图像传感器对光线的敏感程度。2、光圈光圈F值 = 镜头焦距/镜头光圈直径光圈值系列:F1.0,F1.4,F2.0,F2.8,F4.0,F5.6,F8.0,F11,F16,F22,F32,F44,F64光圈F值越小,光圈越大,进光量越多,反之相反。在夜拍或暗光环境下,大光圈的成像优势就更显着。3、快门时间以秒为单位,常见为:16,8,4,2,1,1/2,1/4,1/8,原创 2020-07-28 15:00:31 · 1678 阅读 · 0 评论 -
Android Camera video 数据流Surface设置原理
https://blog.csdn.net/haiping1224746757/article/details/107506453继续之前的Video数据流进一步分析Surface的原理解析private void startRecordingVideo() { if (null == mCameraDevice || !mTextureView.isAvailable() || null == mPreviewSize) { return; } try {原创 2020-07-23 20:22:40 · 1521 阅读 · 0 评论 -
Android Camera video数据流
在Android系统中,实现一个具有录像功能的应用程序只需要调用MediaRecorder的相应接口即可。下面简单分析下从MediaRecorder往下的结构:支撑MediaRecorder的framework结构APP调用的应用层MediaRecorder接口最终对应的实质接口位于StagefrightRecorder.cpp中,在这里面会统一管理录像需要的视频数据、音频数据、编码器等;这里只关注视频数据的情况,StagefrightRecorder通过CameraSource来获取视频数据,这个Ca原创 2020-07-22 10:23:10 · 1448 阅读 · 0 评论 -
Android Camera - Image 与 ImageReader获得预览数据
Image:Image类允许应用通过一个或多个ByteBuffers直接访问Image的像素数据, ByteBuffer包含在Image.Plane类中,同时包含了这些像素数据的配置信息。因为是作为提供raw数据使用的,Image不像Bitmap类可以直接填充到UI上使用。因为Image的生产消费是跟硬件直接挂钩的,所以为了效率起见,Image如果不被使用了应该尽快的被销毁掉。比如说,当我们使用ImageReader从不用的媒体来源获取到Image的时候,如果Image的数量到达了maxImages,不原创 2020-07-16 20:05:52 · 2064 阅读 · 0 评论 -
Android 屏幕旋转使用OrientationEventListener实时监听
在开发Camera的时候,总是会遇到一些旋转效果,因为camera在AndroidMenifest.xml中设置android:screenOrientation=“portrait”,所以需要使用一些特别的方式监听手机的旋转角度:OrientationEventListener 的监听不只是判断屏幕旋转角度0,90,180,270 四个角度,还可以实时获取每一个角度的变化。使用方法:(1)创建一个类继承OrientationEventListener(2)开启和关闭监听可以在 activity原创 2020-07-06 09:50:19 · 4731 阅读 · 2 评论 -
Android Camera 屏蔽下拉框和导航栏的方法
在开发过程中,有时候可能需要防呆的功能,防止用户在使用过程中误点返回键,HOME键,下拉框等之类的。接下来我们需要屏蔽这些按键,先看看代码: /** * 隐藏虚拟键 */ public static void hideNavigation(Activity context) { if ((Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB)) { Logger.get().原创 2020-07-01 19:54:22 · 402 阅读 · 0 评论 -
android Camera api1与api2 ZSL简要说明
ZSL的概念ZSL (zero shutter lag) 中文名称为零延时拍照,是为了减少拍照延时,让拍照&回显瞬间完成的一种技术。Single Shot当开始预览后,sensor 和 VFE 会产生 preview 和 snapshot帧, 而最新的snapshot 帧数据会被存储在buffer 中。当拍照被触发,系统计算实际的拍照时间,找出在buffer中的相应帧,然后返回帧到用户,这就是所谓的“ZERO”。系统计算出shutter lag的时间,然后把某个帧认作是拍照实时的那帧数据。原创 2020-06-09 20:37:00 · 1377 阅读 · 0 评论 -
Android Camera api1与api2 Zoom的使用详解
在camera1 中zoom有几个方法:isSmoothZoomSupported,setZoom,getZoom,getMaxZoom,getZoomRatios只有getZoomRatios这个方法的返回值是一个集合,但是看了大半天还是没看出是个啥集合。。。。下面就是我的华为手机打印出来的集合。。。。[100, 103, 106, 109, 112, 115, 118, 121, 124, 127, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157,原创 2020-06-08 16:15:02 · 3022 阅读 · 0 评论 -
Android Camera2 资源释放导致的内存泄露
先来一段代码看看: @Override protected void onDestroy() { super.onDestroy(); if (mCaptureRequest != null) { mCaptureRequest.removeTarget(mSurface); mCaptureRequest = null; } if (mSurface != null) {原创 2020-06-08 15:47:47 · 2604 阅读 · 0 评论 -
Android Camera ImageReader解读与使用
在讲解ImageReader之前,我们先看一段代码 /** * 初始化图片读取器 */ private void initImageReader() { //创建图片读取器,参数为分辨率宽度和高度/图片格式/需要缓存几张图片,我这里写的2意思是获取2张照片 mImageReader = ImageReader.newInstance(1080, 1920, ImageFormat.YUV_420_888, 2); mImageRe原创 2020-06-04 16:54:40 · 6600 阅读 · 7 评论 -
Camera2 API Video 录像过程
在之前的文章已经详细讲解过关于Camera的Open整个过程,下面我们在来说说Video的过程:还记得CameraDevice类吗?CameraDevice的reateCaptureRequest(int templateType)方法创建CaptureRequest.Builder。templateType参数有以下几种:TEMPLATE_PREVIEW :预览TEMPLATE_RECORD:拍摄视频TEMPLATE_STILL_CAPTURE:拍照TEMPLATE_VIDEO_SNAPSH原创 2020-06-03 17:39:34 · 1781 阅读 · 1 评论 -
Camera2 API 之 SurfaceView、TextureView、CameraManager、CameraDevice详解
从5.0开始(API Level 21),可以完全控制安卓设备相机的新api Camera2(android.hardware.Camera2)被引入了进来。在以前的Camera api(android.hardware.Camera)中,对相机的手动控制需要更改系统才能实现,而且api看着方便,但是不好管理。不过老的Camera API在5.0上已经过时(依然兼容),如今Android推荐使用Camera2采集视频,借着写这篇记录的过程,熟悉和理解Camera2流程。专用名词YUV一种颜色编码的方法原创 2020-06-03 17:28:53 · 1335 阅读 · 0 评论 -
Android Camera 3A 模式和状态转换
虽然实际的 3A 算法取决于 HAL 实现,但高级状态机的说明由 HAL 接口定义,以支持 HAL 设备和框架就 3A 的当前状态进行通信并触发 3A 事件。当设备开启时,所有单独的 3A 状态都必须为 STATE_INACTIVE。流配置不会重置 3A。例如,在整个 configure() 调用期间必须保持焦点锁定。要触发 3A 操作,只需在下一个请求的设置中设置相关触发条目,以指示触发开始即可。例如,若要触发自动对焦扫描的启动操作,只需将相应请求的 ANDROID_CONTROL_AF_TRIGGE原创 2020-06-01 14:59:33 · 500 阅读 · 0 评论 -
Android Camera2 CameraCharacteristics Key 详细解说
一、简介CameraCharacteristics 是专门用来描述相机设备属性的一个类,继承自CameraMetadata类。给对给定的相机,它里面所包含的属性都是 固定的 ,也就是我们说的静态metadata.包括:曝光补偿(Exposure compensation)自动曝光/自动对焦/自动白平衡模式(AE / AF / AWB mode)自动曝光/自动白平衡锁(AE / AWB lock)自动对焦触发器(AF trigger)拍摄前自动曝光触发器(Precapture AE trigger原创 2020-05-28 16:20:24 · 3712 阅读 · 1 评论 -
Android Camera 录制视频,可限制时长,限大小
在调用系统Video时,想控制录制视频的大小与时长,可以根据下面的案例试试:public static void recordVideo(Context context, int limit_time, int size) { Intent intent = new Intent(); intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,原创 2020-05-28 15:30:49 · 3004 阅读 · 0 评论 -
Android Camera2 相机拍照流程详解
实现特点实现自动对焦选择性正常触发闪光灯flash复用CaptureRequest.Builder, 参数完全一致拍照注意事项讲解代码片段详解流程按照常规方式打开预览设置好相应的全局变量:CameraDevice的cameraDeviceCameraCaptureSession的mPreviewSessionCaptureRequest.Builder的captureRequestBuilderImageReader的imageReader等定义一个类似takePictur原创 2020-05-28 09:32:08 · 2744 阅读 · 0 评论 -
android camera内存泄露定位
1简介1.1目的通过一个非常典型的内存泄露实例,描述内存泄露问题的定位和解决全过程。1.2内存分析脚本CameraDrv主要关注mediaserver进程、mm-qcamera-daemon进程对应的内存,我们可以通过下面的2个脚本来查找比较严重的内存泄露。该脚本实时输出当前进程占用的内存情况,其中,我们主要关注RSS的占用:RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)另外,还需要关注ION申请的内存释放情况,暂不详述,可以参考:https://l原创 2020-05-15 13:59:02 · 1363 阅读 · 0 评论 -
Android Camera autofocus基本概念详解
Camera的对焦模式:FOCUS_MODE_AUTO自动对焦模式,应用需要调用autoFocus(AutoFocusCallback)开始对焦,只会对焦一次,对焦成功会有回调。FOCUS_MODE_INFINITY无穷对焦模式,应用很少,不能调用autoFocus(AutoFocusCallback)方法。FOCUS_MODE_MACRO特写镜头对焦模式,应用需要调用autoFocus(AutoFocusCallback)开始对焦FOCUS_MODE_FIXED固定焦点模式,焦点不可调用时原创 2020-05-11 09:42:13 · 3508 阅读 · 0 评论 -
Camera HDR拍照基本概念
HDR 拍照原理:(High Dynamic Range Imaging)高动态范围成像,是用来实现比普通数字图像技术更大曝光动态范围(即更大的明暗差别)的一组技术。高动态范围成像的目的就是要正确地表示真实世界中从太阳光直射到最暗的阴影这样大的范围亮度。现在一般的数码相机和手机中都实现这种拍照模式。适合场景:比较适合在阴暗变化明显的场景下使用,这样能使明处的景物不致过曝,而使得暗处的景物不致欠曝。譬如逆光环境下拍人物,可以将人物和环境都能拍清晰。或者说能将处在暗处的景物拍摄出来的细节表现得更加充分原创 2020-05-11 09:38:29 · 1619 阅读 · 0 评论 -
Camera2 APP Flash 打闪流程及原理分析
Camera Flash打闪流程梳理Flash打闪的条件有两个一个是AE_Mode 一个是Flash Mode两个参数决定Flash打闪的过程。Flash mode有四个状态 AUTO OFF ON TORCH1 AUTO 模式是在AE状态满足RequireFlash 状态时,在Capture请求过程中会进行打闪。Flash Mode 为Flash_Mode_SINGLE,对应的AE_MODE为ON_AUTO_Flash2 ON 状态时拍照时就会打闪,需要才Capture请求中代码Flash Mo原创 2020-05-11 09:16:41 · 5365 阅读 · 3 评论 -
Camera常见输出格式简介
Camera 常见的数据输出格式有:Rawdata 格式、YUV 格式、RGB 格式。RGB 格式:采用这种编码方法,每种颜色都可用三个变量来表示红色、绿色以及蓝色的强度。每一个像素有三原色 R 红色、G 绿色、B 蓝色组成。YUV 格式:其中“Y”表示明亮度(Luminance 或 Luma),就是灰阶值;而“U”和“V”表示色度(Chrominance 或 Chroma),是描述影像色彩及...原创 2020-05-07 17:10:30 · 3888 阅读 · 0 评论 -
高通cameraHAL调用开启预览
1,在Qcamera2hwi.cpp中的QCamera2HardwareInterface::startPreview()函数中调用startChannel(QCAMERA_CH_TYPE_PREVIEW);2,进入QCamera2HardwareInterface::startChannel(qcamera_ch_type_enum_t ch_type)调用m_channels[ch_type...原创 2020-04-26 10:15:05 · 413 阅读 · 0 评论 -
android camera主要参数
像素与分辨率对手机摄像头分辨率进行说明时,常常会使用图像解析度的专用名词(如CIF,VGA等)来表示分辨率,下面是它们的对应关系(像素=分辨率长宽数值相乘,例如640X480=307200,也就是30W像素):分辨率 像素分辨率(Resolution)所谓分辨率就是指画面的解析度,由多少象素构成的数值越大,图像也就越清晰。分辨率不仅与显示尺寸有关,还会受到显像管点距、视频带宽等因素的影响。我...原创 2020-04-26 09:41:05 · 1142 阅读 · 0 评论 -
高通camera hal3 callback 数据流走向详解
在文件hardware\qcom\camera\QCamera2\HAL3\QCamera3HWI.cpp中,当new一个channel 的时候,就会启动一个对应的captureResultCb 用于接受对应的request的callback例如:pChannel = new QCamera3ReprocessChannel(mCameraHandle->camera_handle,...原创 2020-04-26 09:30:28 · 1250 阅读 · 0 评论 -
Camera 中遇到的缩写介绍
在Camera开发中,总是遇到一些难以理解的英文缩写,不能直观的知道其含义,总结下一些常用的缩写,供大家参考,有不对的地方给予指出:AE:auto exposure 自动亮度曝光,AWB:auto white balance 自动白平衡AF:auto focus 自动对焦 CPP:Camera Post Processing 包括WNR和ASFISP:image signal pr...原创 2020-04-07 10:00:17 · 2133 阅读 · 0 评论