有可能是不同的COM口 试试下面的看那个有结果然后在调试
cams_test = 500
for i in range(0, cams_test):
cap = cv2.VideoCapture(i)
test, frame = cap.read()
if test:
print("i : "+str(i)+" /// result: "+str(test))
你先要看下驱动程序有没有问题,可以用vlc media player验证一下能不能识别到摄像头。
你的电脑貌似没有识别出这个摄像头诶,只识别出端口。还是说你是台式机
1.这个(0)为电脑内置摄像头,你这个摄像头不是集成的么
2.判断一下,看看读没读取摄像头while(True): ret, frame = capture.read() ;ret为是否成功打开摄像头。
import cv2
#获取摄像头
cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
#打开摄像头
cap.open(0)
while cap.isOpened():
#获取画面
flag, frame = cap.read()
######################画面处理1##########################
#灰度图
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
frame = cv2.medianBlur(frame, 5)
img_blur = cv2.GaussianBlur(frame, ksize=(21, 21),
sigmaX=0, sigmaY=0)
frame = cv2.divide(frame, img_blur, scale=255)
#画面显示
cv2.imshow('mytest', frame)
#设置退出按钮
key_pressed = cv2.waitKey(100)
print('单机窗口,输入按键,电脑按键为',key_pressed,'按esc键结束')
if key_pressed == 27:
break
#关闭摄像头
cap.release()
#关闭图像窗口
cv2.destroyAllWindows()
【环境不同,参考下是否可行】
您好,
capture = cv2.VideoCapture(index)
里边的index参数默认为0,表示默认摄像头。如果要切换摄像头,可以将Index参数改为1即可。
capture = cv2.VideoCapture(1)
不同的数字表示不同的摄像头。
如有帮助还请采纳。