- 博客(23)
- 收藏
- 关注

原创 Camera常用算法介绍1
在Android Camera开发中,算法集成是实现高质量成像和智能功能的核心环节。HDR(High Dynamic Range)是一种通过多帧合成技术扩展图像动态范围的技术,旨在解决高反差场景中亮部过曝、暗部欠曝的问题。其核心原理是通过捕捉不同曝光值的图像,提取各帧最佳细节并融合,最终生成层次丰富、色彩真实的照片。3A算法是自动曝光(AE)自动对焦(AF)和自动白平衡(AWB)的统称,是手机相机成像质量的核心控制技术。其目标是通过动态调节光学参数,使图像在亮度、清晰度和色彩还原上达到最佳效果。
2025-03-18 17:57:54
1504
原创 Android Camera 框架全景解析3
通过CameraDevice.createCaptureSession()创建会话,需传入预览Surface和录制Surface列表。调用setRepeatingRequest()开始持续捕获帧数据到预览和录制Surface。配置MediaRecorder参数。创建CaptureSession。初始化CameraDevice。配置预览Surface。
2025-03-20 18:52:20
714
原创 Android Camera 框架全景解析2
截至2025年,Google Play新应用强制要求使用Camera2/CameraX。:CameraX+Camera2扩展组合(需自定义图像处理管线):采用CameraX减少70%代码量(电商/社交应用):选择Camera2实现底层操作(如医疗/工业场景):优先使用Camera1(需处理API兼容)
2025-03-20 18:51:53
991
原创 Android Camera 框架全景解析1
手机摄影、车载影像、安防监控等领域的应用场景Android Camera技术演进:从Camera1到CameraX的革新AIDL是Android IPC的通用解决方案,适合应用层通信,强调开发便捷性和高频调用效率。HIDL专为硬件抽象设计,通过版本化和进程隔离提升系统升级灵活性,但逐渐被AIDL取代。未来趋势:Google通过Stable AIDL强化接口兼容性,推动HAL层与框架层的进一步解耦,同时降低开发复杂度。
2025-03-20 18:22:05
991
原创 Camera常用算法介绍5
超分辨率算法旨在通过软件技术将低分辨率图像重建为高分辨率图像。在Android相机中,该技术主要应用于数码变焦优化、夜景模式增强等场景,通过算法弥补光学硬件的物理限制。核心功能提升数码变焦画质(如谷歌Super Res Zoom技术)增强低光环境细节表现修复老旧照片/视频优化医疗/遥感等专业影像质量12电子图像防抖(Electronic Image Stabilization, EIS)是通过软件算法补偿相机抖动的技术,主要应用于视频拍摄场景。
2025-03-20 15:44:18
1030
原创 Camera常用算法介绍4
场景检测算法是通过分析相机捕捉的画面内容,自动识别当前拍摄场景类型(如人像、夜景、美食、文档等),并自动优化相机参数(曝光、白平衡、对焦等)的智能技术。提升普通用户拍照体验智能适配最佳拍摄参数增强图像处理针对性降低专业摄影门槛// 使用示例Remosaic(重马赛克)是用于处理拜耳阵列RAW数据的核心算法,主要解决CFA(Color Filter Array)传感器原始数据到RGB图像的转换问题。
2025-03-20 11:24:47
1279
原创 Camera常用算法介绍3
单摄虚化是通过软件算法模拟光学景深效果的技术,核心目标是实现背景模糊、主体突出的视觉效果。与双摄依赖硬件获取深度信息不同,单摄方案主要基于图像分割和深度估计算法实现,代表性案例包括Google Pixel系列手机。径向畸变:由镜头形状导致,表现为桶形畸变(中心压缩)或枕形畸变(中心膨胀)。切向畸变:由镜头与传感器安装偏差引起,表现为图像倾斜或扭曲。y<h;y++) {x<w;
2025-03-19 16:21:10
1196
原创 Camera常用算法介绍2
Android平台的人脸检测算法旨在通过摄像头实时捕捉图像,识别并定位人脸位置。其核心流程包括图像采集→预处理→特征提取→分类识别。应用场景涵盖安全认证(如人脸解锁、互动娱乐(如AR滤镜等。原生API:如类(支持静态图片检测)ML Kit:Google提供的机器学习套件,支持实时检测与表情分析第三方SDK:如虹软ArcSoft(支持活体检测与年龄识别)1.自然度优先级:iPhone(原生真实)>OPPO(观感优化)>美颜相机(模拟苹果)2.功能丰富度。
2025-03-19 11:34:54
855
原创 Camera常用数据格式
性质:未经处理的传感器原始数据,记录CMOS/CCD捕捉到的光源信号及元数据(如ISO、白平衡)。特点未压缩:保留全部原始光信号信息,动态范围广,便于后期处理。数字底片:类似传统胶片的原始信息承载角色,需通过插值(Demosaic)转换为RGB/YUV等可用格式。应用场景:专业摄影、图像调优(如白平衡、降噪)、高通/MTK平台ISP处理。全称:Joint Photographic Experts Group(联合图像专家组)扩展名.jpg或.jpeg(DOS时代因文件名限制采用.jpg开发背景。
2025-03-18 17:34:07
861
原创 Camera基础知识培训
Camera的主要部件分为保护膜,镜头,镜座(Holder)、金线,芯片(sensor)、电子元器件、FPC、连接器几个部分。保护膜:适用于对与镜头的保护,防止镜头出现灰尘或者污渍,以及防止镜头镜片出现划痕。镜头:主要作用是聚集光线,并将光线折射到传感器上马达(VCM):通过移动镜头来实现光学变焦IR滤光片:人眼感测器只能检测到波长介于400nm至700nm之间的可见光,IR滤光片就是用来避掉户外的红外线的光线,避免画面整个偏红,常用的IR有两种:1:普通的IR玻璃;2:蓝玻璃。
2025-03-17 20:25:53
737
原创 手机相机基础技术解析:从硬件到算法的全面指南
手机相机的成像过程可简化为的链路,其核心硬件包括 镜头、CMOS传感器、ISP(图像信号处理器) 以及配套的软件算法。
2025-03-17 15:35:27
890
原创 Git含义及使用
一、Git简介Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。--------《菜鸟教程》二、安装及使用2.1 安装主要是...
2020-04-04 10:35:18
775
转载 linux常用命令
命令 cd如何进入上级目录cd ..如何进入当前用户主目录cd ~如何进入上两级目录cd ../..进入当前目录命令cd .如何进入目录 /usr/isTestercd /usr/isTester命令 mv移动一个文件夹(isTester文件夹,移动到/APP/www目录)mv ~/isTester/ /APP/www移动一个文件(...
2020-03-28 13:12:57
165
原创 Matplotlib画图学习
1import numpy as npimport matplotlib as mplimport matplotlib.pyplot as pltimport pandas as pdx = np.linspace(-1,1,50)y = 2 * x + 1plt.plot(x,y)plt.show()1 2 3 4 5 6 71:回到初始界面2:回到前一步3:...
2020-03-28 12:29:54
193
原创 硕士论文排版
大纲级别及目录先写大纲标题,可以把握全局写大纲的时候最好不要把编号也写出来,比如1,2,等,这些在后面设置多级列表编号之后会自动生成目录生成:点击引用—>目录—>自定义目录,选择几级标题目录字体修改:点击引用—>目录—>自定义目录—>修改—>修改目录字体目录中出现的字,在文章中不出现(例:中文摘要,英文摘要):先将要设置的字设置为最小字体,字体颜色改成...
2020-03-28 12:11:58
878
原创 essential c++读书笔记7
第七章 异常处理7.1 抛出异常异常处理机制有两个主要成分:异常的鉴定与发出,以及异常的处理方式。当异常出现时,正常程序的执行便被暂停。与此同时,异常处理机制开始搜索程序中有能力处理这一异常的地点。异常被处理完毕后,程序的执行便会继续,从异常处理点接着执行。throw7.2 捕获异常我们也可以利用单条或一连串的catch子句来捕获被抛出的异常对象。catch子句由三部分组成:关键字ca...
2020-03-28 12:00:20
135
原创 essential c++读书笔记6
第六章 以template进行编程将template称为处方;template 所接受的类型,系由template用户与使用时指定。能根据用户指定的特定值或特定类型,自动产生一个函数或类。以二叉树为例,二叉树包含两个class:一个是BinaryTree,用以存储一个 ,指向根节点;提供的操作行为包括:插入(insert)、移除(remove)、搜寻(find)、清除(clear)、打印...
2020-03-28 11:58:40
134
原创 essential c++读书笔记5
第五章 面向对象编程风格5.1 面向对象编程**继承:**将一群相关的类组织起来,并让我们得以分享期间的共通数据和操作行为; 父类:基类; 子类:派生类。**多态:**可以使我们操纵不同类时,如同操纵单一个体。 让基类的pointer 和 reference 得以十分透明的指向任何一个派生类的对象。**动态绑定:**解析操作会延迟到运行时才进行。**静态绑定:**程序执行之前就已经解...
2020-03-28 11:54:07
170
原创 essential c++读书笔记4
第四章 基于对象的编程风格前言class 的相关事务1、要包含头文件让程序知道它2、class名称被视为一个类型名称,初始化可以有很多种3、class一般由两个部分组成:一组公开的(public)操作函数和运算符,以及一组私有的实现细节。这些操作函数和运算符成为class的member function,并代表这个class的公开接口。4、身为class的的用户,只能访问其公开接口。...
2020-03-28 11:49:46
150
原创 essential c++读书笔记3
第三章 泛型编程风格STL主要由两种组件构成:1、容器:vector、list、set、map等类;2、是用以操作这些容器的所谓泛型算法,包括find(),sort(),replace(),merge()等vector和list这两种容器是所谓的顺序性容器,会依次维护第一个、第二个等等元素,主要采用迭代操作map和set这两种容器属于关联容器,关联容器可以让我们快速查找容器中的元素值。 ...
2020-03-28 11:44:06
222
原创 essential c++读书笔记2
第二章 面向过程的编程风格2.1 如何撰写函数函数的四个部分:返回值类型、函数名、参数列表、函数体函数必须先被声明,才能被调用 int fibon_elem(int pos); 声明函数定义则包括函数原型及函数体。2.2 调用一个函数Pass by Reference语意reference扮演着外界与对象之间的一个间接号码牌的角色。只要在型别名称和reference名称...
2020-03-28 11:36:36
228
原创 essential c++读书笔记1
第一章 c++编程基础1.1 如何撰写C++程序int main(){ // 我们的程序代码置于此处}关键字(int): 程序语言先行定义的一些具有特殊意义的名称,int用来表示语言内建的整数数据型别。函数: 一块独立的程序代码序列,能够执行一些运算,包含以下4个部分: 返回值的型别 int,函数名称 main,参数列 ( ),以及函数主体{ }。1) 函数的返回值: 通常用来表...
2020-03-28 11:31:50
217
原创 计算机网络
什么是计算机网络?计算机网络是通信技术+计算机技术;是互连(互连互通)的,自治(无主从关系)的计算机集合什么是网络协议?简称为协议,是为进行网络中数据交换而建立的规则、标准或约定;协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采用的“动作”。协议三要素:语法(数据与控制信息的结构或格式、信号电平)、语义(需要发出何种控制信息、完成何种动作以及做出何种响...
2020-03-28 11:24:00
305
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人