打开摄像头,显示RGB源视频流
将每一帧数字显示出来
同时将RBG的视频流转换为Gray灰度视频流
import cv2
#打开摄像头的索引号,0表示默认摄像头,若有多个摄像头可修改为1或者2等
camera_index = 0
#打开摄像头,并创建VideoCapture对象
cap = cv2.VideoCapture(camera_index)
#检查摄像头是否打开成功
if not cap.isOpened():
print("摄像头打开失败,camera_index=",camera_index)
exit()
else:
print("打开摄像头成功")
print("camera_index = ",camera_index)
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
print("width = ",width)
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
print("height = ",height)
num = 0
#循环读取摄像头中的每一帧图像
while True:
ret, frame = cap.read() #从摄像头中读取一帧图像
num = num+1
cv2.putText(frame,"num="+str(num),(20,30),1,2,(0,0,255),2)
if not ret:
print("无法读取摄像头中的图像,直接break退出")
break
else:
cv2.imshow("camera",frame)
#将摄像头捕捉到的图像转换为灰度图像
gray_frame = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
#显示灰度图像
cv2.imshow("gray_camera",gray_frame)
if cv2.waitKey(100) == ord('q'):
break
#释放摄像头
cap.release()
#关闭窗口
cv2.destroyAllWindows()
