您的位置:首页 > 其它

ov5642图像旋转方法

2018-03-02 16:03 489 查看
关于图像旋转问题,参考芯片手册,可以得知:与图像旋转相关的寄存器有0x3818,0x3621,0x3801。

其中0x3818直接控制旋转,修改之前0x3818的值是:0xC1(二进制:11000001),第5位是0,第6位是1,说明图像经过了镜像但没有做翻转处理,实际效果是:图像是上下翻转,左右颠倒的。因此要想把图像转过来需要做如下处理:不经过镜像但是要做翻转处理,那么0x3818寄存器就要修改成0xA1(二进制:10100001)。做完这一步图像可以上下翻转过来了,并且左右也正常,但是存在亮度偏暗问题。如上图手册中说:“for the mirror function, it is also necessary to set registers0x3621[5:4] and 0x3801”。因此,图像偏暗问题可能和0x3621[5:4]和0x3801有关。我们先看0x3621相关内容:




只有这两处说明,并没有具体提到0x3621[5:4]。不过,既然手册中说修改0x3818[6:5]后,也要跟着修改0x3621[5:4],所以,我们先看一下修改之前0x3621的值,查看源码发现修改之前0x3621的值是0x87(二进制:10000111),第4位和第5位都是0。那么,要修改0x3621[5:4],无非就有以下三种可能0xa7(二进制:10100111),0xb7(二进制:10110111),0x97(二进制:1010111)。我们挨个试就可以了,事实证明,0xa7是对的。再来看一下0x3801相关内容:



上图说0x3801是水平起点低字节,0x3800是水平起点高字节。不太明白啥意思,不过,从字面意思看,应该和亮度关系不大,先不动它。事实证明,它的值确实不影响亮度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ov5642 图像旋转