s3c6410 摄像头图像镜像问题笔记
来源:互联网 发布:淘宝暴利产品有哪些 编辑:程序博客网 时间:2024/05/22 08:17
摄像头镜像的问题经常碰到 一直只是测试没有深入去研究 最近看了下 找到了v4l2下面的相关定义 首先上代码 这个是qt4上面用到的 其它的步骤这里就不贴代码了
struct v4l2_control vc; vc.id = V4L2_CID_VFLIP; vc.value = 0; /* Set up for mirror */ if (ioctl(fd, VIDIOC_S_CTRL, &vc) < 0) { emit display_error(tr("VIDIOC_S_CTRL").arg(QString(strerror(errno)))); return -1; }这里直接设置成FLIP_Y_AXIS即垂直方向翻转 不同的内核版本这里的vc设置有可能不一样 我这里用的是2.6.38的版本
还有水平方向翻转V4L2_CID_HFLIP
在videodev2.h中定义了这两个宏
#define V4L2_CID_HFLIP(V4L2_CID_BASE+20)#define V4L2_CID_VFLIP(V4L2_CID_BASE+21)
对应驱动
drivers/media/video/samsung/fimc/s3c_fimc_v4l2.c 函数s3c_fimc_v4l2_s_ctrl中
case V4L2_CID_HFLIP:frame->flip = FLIP_X_AXIS;ctrl->rot90 = 0;s3c_fimc_change_rotate(ctrl);break;case V4L2_CID_VFLIP:frame->flip = FLIP_Y_AXIS;ctrl->rot90 = 0;s3c_fimc_change_rotate(ctrl);break;在函数s3c_fimc_change_rotate中最张会去设置6410中的CAMIF中的CICOTRGFMT寄存器的第14-15位
void s3c_fimc_change_rotate(struct s3c_fimc_control *ctrl){u32 cfg;if (ctrl->rot90)s3c_fimc_set_rot90(ctrl);if (ctrl->out_type == PATH_OUT_DMA) {cfg = readl(ctrl->regs + S3C_CIPRTRGFMT);cfg &= ~S3C_CIPRTRGFMT_FLIP_MASK;cfg |= (ctrl->out_frame.flip << S3C_CIPRTRGFMT_FLIP_SHIFT);writel(cfg, ctrl->regs + S3C_CIPRTRGFMT);}}
重新编译应用程序问题解决
0 0
- s3c6410 摄像头图像镜像问题笔记
- Android4.4 Camera 摄像头镜像问题
- 图像编程学习笔记5——图像镜像
- 图像镜像翻转
- 图像镜像翻转
- 图像镜像
- C++ 图像镜像
- 图像镜像
- 图像镜像
- RGB图像镜像
- 图像镜像
- 图像镜像变换
- matlab图像镜像
- 图像镜像_matlab
- C#图像镜像
- android图像绘制(一)——镜像问题
- 图像镜像之水平镜像
- 图像镜像之竖直镜像
- intellij idea加载go开发插件源码时报错Error:ant: Cannot run 'patch-version' target: JDK '<unknown>' not found
- Android开发详解之onTouch, onLongClick和onClick详解
- JAVA多线程实现的三种方式
- 《大话设计模式》--考题抄错会做也白搭--模板方法模式<TemplateMethod>(10)
- Cooking
- s3c6410 摄像头图像镜像问题笔记
- Red rose
- iOS 8 AutoLayout与Size Class自悟
- VB获取颜色色深位数
- V sign
- vim多行注释,多行删除删除
- SAT完成句子题目解析
- Django 介绍、安装配置、基本使用、Django 用户注册例子
- time_t数据类型表示的最迟时间