gpt4 book ai didi

python-3.x - Opencv 无法打开相机

转载 作者:太空宇宙 更新时间:2023-11-03 23:10:18 26 4
gpt4 key购买 nike

我编写了一个 OpenCV 应用程序,除了 OpenCV 无法打开相机外,一切运行正常。我已经测试过相机在 cheese 和下一个命令实用程序上都能正常工作:

fswebcam -r 640x480 --jpeg 85 -DE 1 webcam-shot.jpg

还有

ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -vframes 1 test1.jpg

一切正常;下一个运行视频文件的示例运行良好:

import numpy as np
import cv2
import os
import time

cap = cv2.VideoCapture('reporte actual.mp4')

while(cap.isOpened()):
ret, frame = cap.read()

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

cap.release()
cv2.destroyAllWindows()

但是当尝试使用相机时,函数 isOpened() 总是返回 false:

import numpy as np
import cv2
import os
import time

cap = cv2.VideoCapture(0)
print(cap.get(3))
print(cap.isOpened())
cap.release()

我正在使用:

  • kubuntu 18.04 64 位
  • python 3.6.5
  • OpenCV 4.0.0-pre

我在装有 ubuntu 16.04 64 位的 PC 上测试了同样的代码,运行良好,行

print(cap.get(3))

获取相机的分辨率,函数 isOpened() 返回 true;我已经在 OpenCV 中启用了 ffmpeg 支持:

 Video I/O:
DC1394: YES (ver 2.2.5)
FFMPEG: YES
avcodec: YES (ver 57.107.100)
avformat: YES (ver 57.83.100)
avutil: YES (ver 55.78.100)
swscale: YES (ver 4.8.100)
avresample: YES (ver 3.7.0)
GStreamer:
base: YES (ver 1.14.1)
video: YES (ver 1.14.1)
app: YES (ver 1.14.1)
riff: YES (ver 1.14.1)
pbutils: YES (ver 1.14.1)
gPhoto2: NO

gstreamer 库安装在我的 PC 中,当我运行 then 命令时,我能够看到颜色条视频显示

gst-launch-1.0 videotestsrc ! xvimagesink

下一个命令

v4l2-ctl --list-devices

显示此输出:

USB 2.0 Camera: HD 720P Webcam (usb-0000:00:14.0-14):
/dev/video0

所以到这里为止一切正常;当我从命令行运行应用程序时,我得到了下一个答案:

gstreamer-critical ** gst_element_get_state assertion 'gst_is_element (element)' failed

为了拍照分析,我把OpenCV的camera handle换成了:

ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -vframes 1 test1.jpg

然后我就可以进行我需要做的分析;所以唯一的问题是 OpenCV 相机 handle ……有什么想法吗?

最佳答案

您已经开始访问相机

cap = cv2.VideoCapture(0)

要从相机读取帧,请使用

ret, frame=cap.read()

要在窗口中显示框架,请使用

cv2.imshow('frame',frame)

要显示流,请使用

while True:
ret, frame=cap.read()
cv2.imshow('frame',frame)

关于python-3.x - Opencv 无法打开相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51615461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com