大家好,
我用的是DM368的开发板,之前接D1的摄像机,图像都是正常的,现在我们用的sony的1080i的摄像机,采集到的图像上边有黑色和绿色的色块,图像的右边也有黑边。
请问大家,这个是什么问题?我们把sony的摄像机直接接到电视上,是没有这个黑边的。
我又继续做了实验,我使用了v4l2_mmap_loopback,只是在LCD上回放,上边也会有绿色和黑色的条纹。
是capture要做什么设置吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好,
我用的是DM368的开发板,之前接D1的摄像机,图像都是正常的,现在我们用的sony的1080i的摄像机,采集到的图像上边有黑色和绿色的色块,图像的右边也有黑边。
请问大家,这个是什么问题?我们把sony的摄像机直接接到电视上,是没有这个黑边的。
我又继续做了实验,我使用了v4l2_mmap_loopback,只是在LCD上回放,上边也会有绿色和黑色的条纹。
是capture要做什么设置吗?
D1和1080i图像的长宽比例不一样,因此显示1080i时会对图像resize,然后显示到电视上。1080i显示到4:3电视时会有上下部分填充不完整的现象。
如果你使用的demo支持1920x1080,那么可以接宽屏显示器来看显示效果;
或者需要在capture或者display的时候对图像进行resize来适合你的显示器;
在dmai目录下有个app是video_lookback_resize,你可以参考下。
/* Crop the image depending on requested image size */
if (ioctl(hCapture->fd, VIDIOC_S_CROP, &crop) == -1) {
sony摄像机出来的视频确实是1920X1080的,我解码播放的时候也是1080P的。上边的绿条和黑线的问题,我已经解决了。
我把attrs->cropY 设置成48,cropHeight还是1080,这样就没有上边的黑边了,图像也没有失真。
但是,图像右边还是有8个像素的黑边,这个问题就麻烦了,不能这么解决了,因为cropX不能是负数。
不知道大家有什么建议没?
补充说明下,这样改是有问题的。
if ((crop->c.left + crop->c.width > max_width) ||
(crop->c.top + crop->c.height > max_height)) {
v4l2_err(&vpfe_dev->v4l2_dev, "Error in S_CROP"
" params, max_width = %d, max_height = %d\n",
max_width, max_height);
ret = -EINVAL;
goto unlock_out;
}
我把attrs->cropY 设置成48,那么 cAttrs.cropHeight就要设置成1080-48。
这样得到的结果,是整个图像拉伸了48个像素,虽然黑边没了,但是图像变形了。
看来问题的根源还不在这里。
我换了2个1080P的摄像机,都有这个问题,难道是tvp7002的设置有问题?