OpenCV学习笔记(一) ubuntu20.4系统下使用python语言OpenCV包调用笔记本电脑的摄像机

研究生生活开始,计算机小白花了一天改了一个小bug,心酸

博主在windows操作系统下运行这段python代码可以成功实现:

import cv2
import numpy as np

cap = cv2.VideoCapture(0)
while(1):
    # get a frame
    ret, frame = cap.read()
    # show a frame
    #cv2.namedWindow("cpature",cv2.WINDOW_NORMAL)
    cv2.imshow("capture",frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows() 

但是相同情况下,在ubuntu系统下运行就会报错:

  cv2.imshow("capture",frame)
  #报错的代码就是我了

错误为:
OpenCV(4.5.2) /tmp/pip-req-build-dtcwvmq9/opencv/modules/highgui/src/window.cpp:404: error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘imshow’

原因如下:
1、图片路径名称问题,将路径改为绝对路径,单斜杠改为双斜杠或反斜杠,并查看路径中是否有中文。这里我的图片是直接调用摄像头获得的,故不存在这个问题。
2、虚拟机中摄像头没有启用,可以查看笔记本电脑摄像头旁边的小灯是否在发亮,没有发亮那么就需要将usb摄像头与虚拟机链接,注意在连接之后windows系统的摄像头就不能使用了,若需要调用则需要解除连接。
在VMware中操作如下:

3、若连接成功后在cheese中打开摄像头,画面是黑的,这说明接口不兼容,需要虚拟机-设置,将usb的兼容性调节为3.1,演示如下:

cheese是ubuntu系统自带的摄影软件,一般都不用安装
OpenCV学习笔记(一) ubuntu20.4系统下使用python语言OpenCV包调用笔记本电脑的摄像机_第1张图片
至此bug解决!

你可能感兴趣的:(opencv,python,ubuntu,linux)