Toybrick

标题: 摄像头拍照全黑,请教大拿是需要调整哪些参数吗? [打印本页]

作者: veelee8    时间: 2021-8-3 11:21
标题: 摄像头拍照全黑,请教大拿是需要调整哪些参数吗?
摄像头拍照全黑,请教大拿是需要调整哪些参数吗?

作者: 我是流氓我怕谁    时间: 2021-8-3 11:43
你确认下,模组是否接好了,或者重启下,用以下命令是可以抓到图像的。
sudo v4l2-ctl -d /dev/video19 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-to=/tmp/NV12_1920_1080.out --stream-count=1  --stream-poll
作者: veelee8    时间: 2021-8-3 13:39
具体摄像头连接如下,麻烦看一下连线没问题吧?

作者: 我是流氓我怕谁    时间: 2021-8-3 17:25
接法没有问题的。还是抓到的是全黑吗,一次性多抓几张呢?抓到的文件大小对吗?
作者: veelee8    时间: 2021-8-3 17:35
图像3M左右
作者: veelee8    时间: 2021-8-3 17:37
我是流氓我怕谁 发表于 2021-8-3 17:25
接法没有问题的。还是抓到的是全黑吗,一次性多抓几张呢?抓到的文件大小对吗? ...

另外参数设置对吗?1920/1080?
抓图命令:sudo v4l2-ctl -d /dev/video19 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-to=/tmp/NV12_1920_1080.out --stream-count=1  --stream-poll

作者: veelee8    时间: 2021-8-3 17:51
我是流氓我怕谁 发表于 2021-8-3 17:25
接法没有问题的。还是抓到的是全黑吗,一次性多抓几张呢?抓到的文件大小对吗? ...

刚才试了640/480,也不行,也是黑屏

作者: veelee8    时间: 2021-8-3 17:55
我是流氓我怕谁 发表于 2021-8-3 17:25
接法没有问题的。还是抓到的是全黑吗,一次性多抓几张呢?抓到的文件大小对吗? ...

两次抓拍照片如图

作者: 我是流氓我怕谁    时间: 2021-8-3 18:06
我的意思是一次多抓几张,修改count=1的值,例如count=3.
作者: veelee8    时间: 2021-8-3 18:21
我是流氓我怕谁 发表于 2021-8-3 18:06
我的意思是一次多抓几张,修改count=1的值,例如count=3.

count改成了3,抓拍的图片全白,是哪个参数没设置对吧?

作者: 我是流氓我怕谁    时间: 2021-8-4 08:32
命令没有问题啊。抓完图,然后dmesg,把log传上来看下。
作者: veelee8    时间: 2021-8-4 13:42
我是流氓我怕谁 发表于 2021-8-4 08:32
命令没有问题啊。抓完图,然后dmesg,把log传上来看下。

dmesg信息如下,请查阅。

作者: veelee8    时间: 2021-8-4 13:45
我是流氓我怕谁 发表于 2021-8-4 08:32
命令没有问题啊。抓完图,然后dmesg,把log传上来看下。

另外,开发板上面怎么这么多video,有25个之多,功能有什么不同吗?这里面不会有什么错误吧?

作者: 我是流氓我怕谁    时间: 2021-8-4 14:27
你抓的是video0的还是video19的数据,我怎么看你的log,video0和video19的数据都抓了。
mipi 摄像头抓的是video19的数据。
还有就是你摄像头的盖子拿了吗?
作者: veelee8    时间: 2021-8-4 14:36
我是流氓我怕谁 发表于 2021-8-4 14:27
你抓的是video0的还是video19的数据,我怎么看你的log,video0和video19的数据都抓了。
mipi 摄像头抓的是v ...

盖子拿掉了,video0和video19的数据都抓了,都没有显示。
作者: 我是流氓我怕谁    时间: 2021-8-4 14:58
你用这个命令,丢弃开头几帧数据试下。
sudo v4l2-ctl -d /devideo19 --set-fmt-video=width=1920,height=1080,pixelformat=NV12 --stream-mmap=3 --stream-to=/tmp/NV12_1920_1080.out --stream-count=3 --stream-skip=10 --stream-poll
作者: veelee8    时间: 2021-8-4 17:22
我是流氓我怕谁 发表于 2021-8-4 14:58
你用这个命令,丢弃开头几帧数据试下。
sudo v4l2-ctl -d /devideo19 --set-fmt-video=width=1920,height=1 ...

好的,到办公室再去试试。请教一下,video0,video19都是对应的同一个摄像头吧,它们之间有什么区别吗?
作者: 我是流氓我怕谁    时间: 2021-8-4 17:32
video0是DP IN,video19是mipi 摄像头,你可以通过media-ctl命令查看。
作者: veelee8    时间: 2021-8-4 18:04
我是流氓我怕谁 发表于 2021-8-4 17:32
video0是DP IN,video19是mipi 摄像头,你可以通过media-ctl命令查看。

其他的videoX都不能采集数据吧?
作者: 我是流氓我怕谁    时间: 2021-8-6 08:48
可以抓到图了吗??
作者: veelee8    时间: 2021-8-6 11:16
我是流氓我怕谁 发表于 2021-8-6 08:48
可以抓到图了吗??

不行,还是没有图片。v4l2看了一下,获取不到视频格式,见图,麻烦看一下哪里出问题了,谢谢

作者: veelee8    时间: 2021-8-6 11:19
我是流氓我怕谁 发表于 2021-8-6 08:48
可以抓到图了吗??

不行,还是抓不到图。v4l2代码跑了一下,获取格式失败,麻烦看一下问题在哪里?谢谢

作者: veelee8    时间: 2021-8-6 11:21
我是流氓我怕谁 发表于 2021-8-6 08:48
可以抓到图了吗??

不行,还是抓不到图。v4l2代码跑了一下,获取格式失败,麻烦看一下问题在哪里?谢谢

作者: veelee8    时间: 2021-8-6 11:24
不行,还是抓不到图。v4l2代码跑了一下,获取格式失败,麻烦看一下问题在哪里?谢谢

代码:
        struct v4l2_fmtdesc v4fmt;
        memset(&v4fmt,0,sizeof(v4fmt));
        //v4fmt.index=0;
        v4fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
        //v4fmt.type = V4L2_BUF_TYPE_META_CAPTURE;
        int ret = ioctl(fd, VIDIOC_ENUM_FMT, &v4fmt);
        printf("ret is:%d\n",ret);

运行结果:
ret is:-1
获取失败!: Invalid argument
index=0
flags=0
description=-1361865056
pixelformat=
reserved=0
作者: veelee8    时间: 2021-8-6 11:28
我是流氓我怕谁 发表于 2021-8-6 08:48
可以抓到图了吗??

编译命令如图

作者: troy    时间: 2021-8-9 09:46
veelee8 发表于 2021-8-6 11:28
编译命令如图

RV1126的V4L2走的是MPLANE的分支,上层应用程序需要做继续区分,判断一下cap.capabilities是否为V4L2_CAP_VIDEO_CAPTURE_MPLANE,进行分支处理。可以参考下附件中的代码
作者: veelee8    时间: 2021-8-9 09:59
我是流氓我怕谁 发表于 2021-8-6 08:48
可以抓到图了吗??

v4l2_fmtdesc.type改为V4l2_BUF_TYPE_CAPTURE_MPLANE后,获取的格式数据如附件,请教一下如何能正确获得摄像头图像数据?

作者: troy    时间: 2021-8-9 10:17
veelee8 发表于 2021-8-9 09:59
v4l2_fmtdesc.type改为V4l2_BUF_TYPE_CAPTURE_MPLANE后,获取的格式数据如附件,请教一下如何能正确获得 ...

参考下附件的代码,好几个接口都要改成MPLANE,而且MPLANE设置的结构体跟原来的也不太一致。你的v4l2抓到的图可以发上来,只抓一帧,分辨率改小试一下。
sudo v4l2-ctl -d /dev/video19 --set-fmt-video=width=640,height=480,pixelformat=NV12 --stream-mmap=3 --stream-to=/tmp/NV12_640_480.out --stream-count=1  --stream-poll。
抓图的时候看一下有没有错误信息,抓图成功一帧就会打印出一个'<',把抓图log和图像文件一起附件贴出来。
作者: veelee8    时间: 2021-8-9 10:23
troy 发表于 2021-8-9 10:17
参考下附件的代码,好几个接口都要改成MPLANE,而且MPLANE设置的结构体跟原来的也不太一致。你的v4l2抓到 ...

好的,稍等。您能给解释一下MPLANE和非MPLANE接口的区别吗?
作者: veelee8    时间: 2021-8-9 10:29
troy 发表于 2021-8-9 10:17
参考下附件的代码,好几个接口都要改成MPLANE,而且MPLANE设置的结构体跟原来的也不太一致。你的v4l2抓到 ...

你好,仍然是黑屏。您能把你们在1126D上跑通的C代码例程发我一份吗?

作者: troy    时间: 2021-8-9 10:47
veelee8 发表于 2021-8-9 10:29
你好,仍然是黑屏。您能把你们在1126D上跑通的C代码例程发我一份吗?

我的意思是让你把NV_12_640_480.out源文件发出来。
MPLANE和非MPLANE的接口区别请自行百度,这个都是v4l2的标准。
作者: veelee8    时间: 2021-8-9 11:08
troy 发表于 2021-8-9 10:47
我的意思是让你把NV_12_640_480.out源文件发出来。
MPLANE和非MPLANE的接口区别请自行百度,这个都是v4l2 ...

原文件发不了,已通过WW转您,谢谢
作者: troy    时间: 2021-8-9 11:10
veelee8 发表于 2021-8-9 11:08
原文件发不了,已通过WW转您,谢谢

你不会用压缩文件打个包吗……不就可以发了
作者: veelee8    时间: 2021-8-9 11:13
troy 发表于 2021-8-9 11:10
你不会用压缩文件打个包吗……不就可以发了

论坛只能发图片格式的,压缩、改名都不行
作者: veelee8    时间: 2021-8-9 11:15
troy 发表于 2021-8-9 11:10
你不会用压缩文件打个包吗……不就可以发了

具体如图

作者: veelee8    时间: 2021-8-9 11:17
veelee8 发表于 2021-8-9 11:08
原文件发不了,已通过WW转您,谢谢

麻烦查收
作者: troy    时间: 2021-8-9 11:43
veelee8 发表于 2021-8-9 11:17
麻烦查收

里面看起来是有数据的,怀疑是前面几帧曝光的问题导致的。3A算法需要获取一些帧之后,才能计算出正常的曝光时间的。其中--stream-skip=30表示调过30帧之后,开始抓取一帧图像。
video=width=640,height=480,pixelformat=NV12 --stream-mmap=3 --stream-to=/tmp/NV12_640_480.out --stream-count=3 --stream-skip=30 --stream-poll
作者: veelee8    时间: 2021-8-9 11:45
troy 发表于 2021-8-9 11:10
你不会用压缩文件打个包吗……不就可以发了

公司提供的例程在哪里?
作者: veelee8    时间: 2021-8-9 12:01
troy 发表于 2021-8-9 11:43
里面看起来是有数据的,怀疑是前面几帧曝光的问题导致的。3A算法需要获取一些帧之后,才能计算出正常的曝 ...

好的,回办公室后再试试。另外麻烦告诉一下例程的位置,谢谢
作者: huaxin    时间: 2021-11-30 14:25
大佬可以分享下yuvImageplayer吗
作者: troy    时间: 2021-12-1 09:11
huaxin 发表于 2021-11-30 14:25
大佬可以分享下yuvImageplayer吗

网上搜一下7yuv工具,这样也可以使用
作者: huaxin    时间: 2021-12-1 09:31
troy 发表于 2021-12-1 09:11
网上搜一下7yuv工具,这样也可以使用

好嘞,谢谢版主大佬




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3