报错总结:
#显示一张图片
import numpy as np
import cv2
img = cv2.imread('D:\2.jpg',1) #(图片路径,如何读取) 0,2黑白;1,3彩色
cv2.imshow('image',img) #(窗口名字命名,图像名)
cv2.waitKey(0) #一直等待键盘输入,有按键按下后程序继续进行
cv2.destroyAllWindows()
error:182 大概率是路径出错
解决方法:
1、将图片放在程序工程文件夹下 例如img = cv2.imread('2.jpg',1)
2、将图片的绝对路径正常输入 例如img = cv2.imread('D:\2.jpg',1)
根据解决方法2,为何还是报错?
原因:路径需要用正确路径img = cv2.imread('D:/2.jpg',1) 顺利显示图片
#利用摄像头逐帧显示
import cv2
import numpy
cap = cv2.VideoCapture(0) #通常0代表笔记本自带摄像头,外界摄像头为1
while(1):
ret, frame = cap.read() #逐帧捕获摄像头图片
cv2.imshow("capture", frame) #显示捕获的图片
if cv2.waitKey(1) & 0xFF == ord('q'): #按下q退出
break
仍然报错,通过断点调试,其实是cap = cv2.VideoCapture(0)就出现问题
网上找了好多资料,找了好几天终于找到如下解决方法:
报错原因:摄像头ID不匹配,不是0或1
解决方法:
#寻找摄像头ID
import cv2
ID = 0
while(1):
cap = cv2.VideoCapture(ID)
# get a frame
ret, frame = cap.read()
if ret == False:
ID += 1
else:
print(ID)
break
结果为700!!
测试摄像头
import cv2
cap = cv2.VideoCapture(700)
while(1):
ret, frame = cap.read()
cv2.imshow("capture", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
结果无论是外界摄像头还是电脑自带摄像头,ID都为700。终于显示成功