OpenCV打不开摄像头:Process finished with exit code 134

报错信息:

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

一个在树莓派上完全没有问题的打开摄像头的脚本,在笔记本上跑时报错,摄像头无法打开:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_


import cv2
import numpy

camera = cv2.VideoCapture(0)

while True:
    ret, frame = camera.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame', frame)
    if cv2.waitKey(1) == ord('q'):
        break

这个问题困扰了很久,外网上查了很久也没有找到解决方案。因为树莓派上挂了摄像头,插拔不是很方便,并且公司的显示器是VGA接口,所以今天出门没带树莓派。下午打开PyCharm想继续学习一下OpenCV,但是又被这个错给拦住了。

报错信息

无意间想到会不会是Python没有权限调用系统摄像头导致的,然后在终端用管理员权限跑一下这个脚本,然后系统弹出一个弹窗,大概意思是询问“是否允许Python调用摄像头”,我还想思考一会儿,然后终端就报错了:

提示

Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

原来之前一直都是因为权限的原因,然后点了允许,之后就不报错了。