求助树莓派MV-MIPI-IMX178M 使用python调用cv2.VideoCapture显示can't open camera by index
-
在命令行使用V4L2-ctl命令摄像头可以正常拍照,/dev/video0节点也存在,用vlc播放器也可以捕获到摄像头,但是使用python调用cv2.VideoCapture(0)提示can't open camera by index,也验证过cv2.VideoCapture()是可以提取本地视频的,请问这是什么原因?
-
@june20255202 said in 求助树莓派MV-MIPI-IMX178M 使用python调用cv2.VideoCapture显示can't open camera by index:
can't open camera by index
你好,我们现在对于MV系列相机尚未提供opencv的使用demo。
您这个应用可能是参考了我们YUV输出接口的sample。
我这边测试的显示:>>> import cv2 >>> cap = cv2.VideoCapture(0) [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1824) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Device '/dev/video0' does not support 1:4:7:1 colorimetry [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (914) open OpenCV | GStreamer warning: unable to start pipeline [ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (501) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created [ WARN:0] global ../modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video0): can't open camera by index
我理解的是这样,cv2.VideoCapture(0)实际调用的是gstreamer的plugin,其不支持现在我们声明的color space。
但是,我认为关键问题并不在此,MV camera输出的是RAW8 RAW10 RAW12等格式,gstreamer可能并不能处理。—— 这部分也是我的猜测。
建议你可以参考https://github.com/veyeimaging/raspberrypi_v4l2/tree/main/samples/opencv/v4l2_opencv_show2.py
尝试采用appsink的方式。
我们会将MV系列导入opencv列入开发计划。抱歉现在无法直接给你可用的代码。 -
@veye_xumm谢谢您的回复,因为我是在MV-MIPI-IMX178M介绍的页面看得到链接,以为是可以用这个demo的,后面我试着用一下您提供appsink的方法再尝试一下,有问题了再请教您,谢谢!
-
您好,我想再请问一下,MV系列的相机拍照的话只能用树莓派的终端命令行吗?有没有方法可以让python来控制拍照,我想了一个办法是让python调用函数与命令行进行交互,但是实现起来有些麻烦,所以我想请问一下有没有其他便捷的方法能够实现运行一个python脚本就可以实现拍照、存储照片功能呢?
-
@june20255202 不好意思,python我不是很熟。但是感觉上用python
去调用命令行或者脚本也是可行的方法。
本身python内置v4l2的控制库的话,底层应当也是用C做的。 -
This post is deleted!