Android摄像头回显拍照角度说明

本文介绍了手机摄像头的组成部分,重点讲解图像传感器的工作原理,并探讨了不同类型的传感器及其优缺点。此外,还讨论了摄像头的成像原理、预览及拍照角度调整的重要性,以及如何处理图像元信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、摄像头组成

手机摄像头主要由以下几个部分组成:PCB板、DSP(CCD用)、传感器(SENSOR)、固定器(HOLDER)、镜头(LENS ASS′Y)。其中镜头(LENS ASS′Y),DSP(CCD用),传感器(SENSOR)是最重要的三个部分。

重点关注图像传感器

图像传感器
传感器将从镜头上传导过来的光线转换为电信号,再通过内部的DA转换为数字信号。由于传感器的每个pixel只能感光R光或者B光或者G光,因此每个像素此时存贮的是单色的,我们称之为RAW DATA数据。要想将每个像素的RAW DATA数据还原成三基色,就需要信号处理器ISP来处理。

图像传感器是起感光记录作用的元件,和胶卷类似。主要分两种:CCD和CMOS。CCD传感器虽然成像质量好,但是成本较高,并不适用于手机,而CMOS传感器凭借着较低的功耗和价格以及优异的影像品质,在手机领域应用最为广泛。

CMOS传感器又分为背照式和堆栈式两种,二者系出同门,技术最早都由索尼研发,索尼背照式传感器品牌名为“Exmor R”,堆栈式传感器为“Exmor RS”。

相对来说,传感器尺寸越大,感光性能越好,捕捉的光子(图形信号)越多,信噪比越低,成像效果自然也越出色,然而更大的传感器却会导致手机的体积、重量、成本增加。
在这里插入图片描述

2、手机摄像头的成像原理

光线进入系统,经过镜头,到达图像传感器,光子打到传感器上产生可移动电荷,这是内光电效应,可移动电荷汇集形成电信号,由于处理器无法识别电荷信号,需要把电信号转化为数字信号,对于图像传感器是cmos的系统不需要外加模数转换器,而对于以ccd作为图像传感器的系统需要A/D转换器,经过模数转换器件,电荷信号转换成数字信号,数字信号经过放大电路进入微处理器,数字信号经过DSP数字信号处理芯片经过存储处理后,传输到屏幕形成和物一样的图像。
在这里插入图片描述

3、Camera 预览角度,拍照角度

开发Camera过程中会遇到Camera拍照,获取照片后可以上传照片或者展示给用户。
Camera的图像数据来源于摄像头硬件的图像传感器,这个图像传感器被固定到手机上后会有一个默认的方向,一般默认方向是当手机左侧横放时(手机横放并且手机顶部在左侧)。由于默认图片传感器为横向,大部分手机拍照则是竖向,所以得到的数据依然会是横向的,这时就需要对图片进行旋转。
图像传感器的取景方向与手机正常方向成90读夹角。

由于Camera默认是横向的,竖向拍照时得到的照片和预览的照片会有所不同,因为预览可以利用setDisplayOrientation设置预览角度调节预览图片,但是setDisplayOrientation只是改变了预览的角度,对于拍摄生成的图片依然会拿到原来的未被旋转和默认图片传感器方向相同的数据。而对于前置摄像头预览得到的图片会比后置摄像头多一个镜面效果,两者都需要对拍摄生成的图片进行旋转处理才能得到正常的符合眼睛所看到的预览图片的样式。

4、图片元信息Exif

Exif是一种图像文件格式,实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、方向、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及GPS全球定位系统数据、缩略图等。你可以利用任何可以查看JPEG文件的看图软件浏览Exif格式的照片,但并不是所有的图形程序都能处理Exif信息。

Exif 文件实际是JPEG文件的一种,遵从JPEG标准,只是在文件头信息中增加了有关拍摄信息的内容和索引图。所以你可以使用任何支持JPEG格式的图像工具软件观看 Exif 文件,但图像一旦被修改,Exif 信息可能会永久丢失,故编辑 Exif 必须使用专门的软件。

在线查看图片Exif工具:https://www.gaitubao.com/exif#
在这里插入图片描述

注意:Android7以后setDisplayOrientation

*

Starting from API level 14, this method can be called when preview is
* active.
*
*

Note: Before API level 24, the default value for orientation is 0. Starting in
* API level 24, the default orientation will be such that applications in forced-landscape mode
* will have correct preview orientation, which may be either a default of 0 or
* 180. Applications that operate in portrait mode or allow for changing orientation must still
* call this method after each orientation change to ensure correct preview display in all
* cases.


*
* @param degrees the angle that the picture will be rotated clockwise.
* Valid values are 0, 90, 180, and 270.
* @throws RuntimeException if setting orientation fails; usually this would
* be because of a hardware or other low-level error, or because
* release() has been called on this Camera instance.
* @see #setPreviewDisplay(SurfaceHolder)
*/
public native final void setDisplayOrientation(int degrees);

默认方向为强制横向模式,默认值为0或180。

参考文献:
https://www.likecs.com/show-203726321.html
https://blog.youkuaiyun.com/u013914309/article/details/124692585
https://blog.youkuaiyun.com/kongbaidepao/article/details/108654502
https://zhuanlan.zhihu.com/p/366726838
https://blog.youkuaiyun.com/xiaopangcame/article/details/119276772

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值