调整摄像头预览成像

GC5035摄像头预览成像调整

platform:rk3288

os:Android7.1

问题:因硬件结构上的摆放位置问题,导致摄像头预览成像时,出现了左右镜像成像问题,拍照和录像时,还出现了最后的照片和视频被旋转了180度. 最后看起来就是倒置的

首先画面左右镜像问题,查阅GC5035的datasheet ,有控制呈现方向的寄存器,
在这里插入图片描述这里设置0x17 寄存器为0x81(第0位设置成1表示在原基础上将左右成像镜像一次)
于是修改代码:hardware/rockchip/camera/SiliconImage/isi/drv/GC5035/source/GC5035_tables.c中:

        {0x17,0x81,"0x0100",eReadWrite},

修改完成后,重新查看成像,发现整个成像界面变成红色的了.
在查阅资料分析后,发现是因为在修改成像为镜像后,sensor 实际输出的 bayer order 也需要对应同步修改,不然就会出现扫描的图像与实际输出的B R G 顺序不符合,就会出现呈像偏红,或者偏绿.
找到原因后,开始修改代码:
hardware/rockchip/camera/SiliconImage/isi/drv/GC5035/source/GC5035_MIPI.c中

const IsiSensorCaps_t Sensor_g_IsiSensorDefaultConfig =
{
    ISI_BUSWIDTH_10BIT,         // BusWidth
    ISI_MODE_MIPI,              // MIPI
    ISI_FIELDSEL_BOTH,          // FieldSel
    ISI_YCSEQ_YCBYCR,           // YCSeq
    ISI_CONV422_NOCOSITED,      // Conv422
    ISI_BPAT_RGRGGBGB,          // BPat
    ISI_HPOL_REFPOS,            // HPol
    ISI_VPOL_NEG,               // VPol
    ISI_EDGE_RISING,            // Edge
    ISI_BLS_OFF,                // Bls
};

将ISI_BPAT_RGRGGBGB 改成 ISI_BPAT_GRGRBGBG
至此摄像头成像镜像问题已经解决了,
第二个问题,因最后呈现的图片和视频都是倒置的,发现将图片旋转180°后变可以正常使用.则在hal层中设置拍照录像视频的参数将方向旋转180°即可
在hardware/rockchip/camera/CameraHal/AppMsgNotifier.cpp中的

int AppMsgNotifier::captureEncProcessPicture(FramInfo_s* frame){

函数中加入rotation = 180;即可.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值