此方法基本上适用于所有android平台上全景模式预览倒180度,拍照正常的问题。

首先说明的是,影响camera方向的有三个地方,分别是系统方向,内核camera方向和驱动镜像。全景模式预览只跟系统方向和驱动镜像有关,一般情况下我们不希望去更改系统方向,而是去修改驱动镜像的方向,来调整全景模式的预览方向。而全景模式的拍照方向跟全景模式的预览方向没有任何关系,全景拍照的方向跟普通的拍照方向保持一致。

下面针对具体问题来进行详细说明。

1.OV5640控制上下倒180度的寄存器是

驱动代码里面默认的是0x41,即0100 0001,Bit7~3是控制模式的,不需要动它,Bit2控制的是ISP(Image Signal Processor影视处理,无论数码相机、摄像机或者摄像手机,其影像数据从前端感应后,皆须经过ASP(Analog
Signal Processing)、ADC(Analog-Digital Converter)、前期影像处理(Pre-ISP)与后端影像处理(Post-ISP)四个阶段后,影像数据才能最终呈现于终端设备上)上下颠倒的,BIT1控制的是Sensor的上下颠倒。这个上下颠倒可能就需要不断的尝试了,总共有0x43和0x47,注意在驱动中可能有多处涉及到0x3820,但是对于全景模式的预览,我们只需要处理的初始化数组static
struct reginfo sensor_init_data中最后一组0x3820的值即可,我这边改成0x47后,全景模式预览就正常了,但是拍照还是倒的,这个没关系,前面也说了跟普通拍照有关。

接下来就是通过调试kernel内核camera的方向来调整camera的预览以及拍照的方向了,这个好办,只说明一点。当我们点击camera应用程序图标进入camera时,出现的预览画面走的流程也是sensor_init_data数组,但是当你点击拍照按钮后,有时会发现,照片拍完后预览的方向又倒了180度,这个是因为拍照后走的流程跟第一次进入camera预览调用的数组不一样了,而是跟具体的分辨率有关了,比如800X600走的是一个数组,1024x720走的又是一个数组,跟camera里面照片像素是相关联的,这个时候还应该来修改驱动代码。找到相应分辨率下对应的数组名称,然后将所有0x3820的值更改为0x47,跟全景调试的结果保持一致。

1.OV5640控制左右镜像的寄存器是:

驱动代码里面默认的是0x07,即0000 0111,此时水平没有镜像效果的。这里我们可以不管Bit7~Bit3,只留意低三位。Bit0 :Horizontal binning enable是个使能控制位,一般需要为高的,接下来就是0011,0101和0001三组数值了,一个一个尝试吧,最后发现0001是可以产生镜像效果的,及0x3821取值0x01即可,接下来的操作就是跟1中的操作一样,替换所有分辨率下对应数组里面的0x3821寄存器的值为0x01即可。

此致,问题得到了完美的解决。

OV5640全景模式预览倒180度,拍照正常的问题的更多相关文章

  1. JS 解决 IOS 中拍照图片预览旋转 90度 BUG

    上篇博文[ Js利用Canvas实现图片压缩 ]中做了图片压缩上传,但是在IOS真机测试的时候,发现图片预览的时候自动逆时针旋转了90度.对于这个bug,我完全不知道问题出在哪里,接下来就是面向百度编 ...

  2. Recovery和Charger模式下屏幕旋转180度

    转自:http://www.etwiki.cn/android/1267.html 如何让Recovery (系统固件升级),charger(关机充电动画)时屏幕旋转180度 解决方法: 1.在boo ...

  3. Recovery和Charger模式下屏幕旋转180度[转]

    如何让Recovery (系统固件升级),charger(关机充电动画)时屏幕旋转180度 解决方法: 1.在bootable\recovery\minui\Graphics.c 文件找到gr_fli ...

  4. MUI 图片上传剪切预览,可选(拍照+系统相册)

    整合网上的例子..麻蛋.没跑通..没办法.自己就拿他们的例子完善了一下..已经可以使用了! 准备工作: 这几个文件要引入.特别是JS 文件!!! <link href="../css/ ...

  5. spark第三篇:Cluster Mode Overview 集群模式预览

    Spark applications run as independent sets of processes on a cluster, coordinated by the SparkContex ...

  6. Android 使用 Camera2 完成预览和拍照

    Android API 21新增了Camera2,这与之前的camera架构完全不同,使用起来也比较复杂,但是功能变得很强大. 在讲解开启预览之前,首先需要了解camera2的几个比较重要的类: Ca ...

  7. android camera 摄像头预览画面变形

    问题:最近在处理一下camera的问题,发现在竖屏时预览图像会变形,而横屏时正常.但有的手机则是横竖屏都会变形. 结果:解决了预览变形的问题,同时支持前后摄像头,预览无变形,拍照生成的jpg照片方向正 ...

  8. 石川es6课程---17、ES7 预览

    石川es6课程---17.ES7 预览 一.总结 一句话总结: 人的价值恒定规律:无论得意还是迷茫之时,你的价值都不靠外界的评判或者你内心的悲喜而决定.而是当时的恒定的.能够提升他只能靠你提升自己的能 ...

  9. 手把手教你用 Spring Boot搭建一个在线文件预览系统!支持ppt、doc等多种类型文件预览

    昨晚搭建环境都花了好一会时间,主要在浪费在了安装 openoffice 这个依赖环境上(Mac 需要手动安装). 然后,又一步一步功能演示,记录,调试项目,并且简单研究了一下核心代码之后才把这篇文章写 ...

随机推荐

  1. Android基于JsBridge封装的高效带加载进度的WebView

    Tamic http://blog.csdn.net/sk719887916/article/details/52402470 概述 从去年4月项目就一直用起了JsBridge,前面也针对jsBrid ...

  2. Android简易实战教程--第三十一话《自定义土司》

    最近有点忙,好几天不更新博客了.今天就简单点,完成自定义土司. 主布局文件代码: <RelativeLayout xmlns:android="http://schemas.andro ...

  3. java学习路线图-----java基础学习路线图(J2SE学习路线图)

    安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...

  4. Spark技术内幕:一个图搞定Spark到底有多少行代码

    Spark1.0.0发布一个多月了,那么它有多少行代码(Line of Code, LOC)? 注:代码统计未包含测试,sample.

  5. 使用TT模板+mvc+wcf实现简单查询

    今天是除夕,小编的这篇博客是掐着点儿发的,在此,祝各位小伙伴新年快乐,身体健康,万事如意:喜从天降,欣喜若狂:喜气盈门,好事成双:好人好运,金玉满堂:神采飞扬,如愿以偿,财源滚滚来,福如东海长:伴随着 ...

  6. 任务执行器——Executor

    上节说到接收器Acceptor在接收到socket后会有一系列简单的处理,其中将socket扔进线程池是最重要的一步,线程池是一个怎样东西?其原理在前面的"线程池原理"章节已经说明 ...

  7. 择天记OL体验截图

  8. [C++学习历程]中级部分 OpenGL第一个例子实现

    作者:sushengmiyan 本文地址:http://blog.csdn.net/sushengmiyan/article/details/21488231 环境:VS2010 准备工作: 1.下载 ...

  9. iOS开发之七:常用控件--UISlider、UISegmentedControl、UIPageControl的使用

    一.UISlider的使用 其实UISlider在iOS开发中用的似乎不是很多,我们看到的用到的地方多是音乐播放器的音量控制,以及视频播放器中的音量控制. 还是记录一下吧! 1.常用属性 // 设置获 ...

  10. 【一天一道LeetCode】#106. Construct Binary Tree from Inorder and Postorder Traversall

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 来源:http ...