关闭

VIDIOC_S_CROP 理解

1220人阅读 评论(0) 收藏 举报

转:http://blog.csdn.net/kickxxx/article/details/6636828

VIDIOC_S_CROP ioctl会传入一个v4l2_crop给驱动程序 

crop.c.left, crop.c.top. crop.c.width, crop.c.height定义了一个长方形区域,这个区域是capture或者overlay模式下的取景范围,

举个例子,图片的active(actual) size是720x576, 现在你只想capture或者overlay (64,64) ,(556, 64), (64,512),(556, 512)这四个点组成区域内的像素.  即在原始图像上下左右各裁掉64像素大小, 那么可如下设置

memset(&crop, 0, sizeof(struct v4l2_crop));

    crop.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
    crop.c.left = 64;
    crop.c.top = 64;
    crop.c.width = 592;
    crop.c.height = 448;
    ret = xioctl(fd, VIDIOC_S_CROP, &crop);
    if (ret) {
        printf("xioctl VIDIOC_S_CROP failed, errno(%d)\n", errno);
        exit(EXIT_FAILURE);
    }

但是freescal mx51平台,在interlaced输入模式下,只能正确的处理水平裁剪,不能正确处理垂直裁剪。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:897705次
    • 积分:9761
    • 等级:
    • 排名:第1788名
    • 原创:16篇
    • 转载:427篇
    • 译文:0篇
    • 评论:127条
    最新评论