- 打开摄像头
import cv2
import numpy as np
#? 打开摄像头
def video_demo():
capture = cv2.VideoCapture(0)#0为电脑内置摄像头
while(True):
ret, frame = capture.read()#摄像头读取,ret为是否成功打开摄像头,true,false。 frame为视频的每一帧图像
frame = cv2.flip(frame, 1)#摄像头是和人对立的,将图像左右调换回来正常显示。
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.imshow('result',gray) # 灰度
cv2.imshow("video", frame)
# 数值越大帧数就越慢,27代表退出键(Esc)
c = cv2.waitKey(50)
if c == 27:
break
video_demo()
cv2.destroyAllWindows()
- 打开摄像头拍照
import cv2 cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) # 打开摄像头 while (1): ret, frame = cap.read() frame = cv2.flip(frame, 1) # 将图像左右调换回来正常显示 cv2.imshow("capture", frame) # 摄像头窗口 if cv2.waitKey(1) & 0xFF == ord('q'): # 如果按下q就截图保存并退出 cv2.imwrite("test.png", frame) # 保存路径 break cap.release() cv2.destroyAllWindows()
-
打开摄像头,实时截屏
import cv2 #? 打开摄像头,实时截屏 def video_demo(): cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) # 0代表电脑自身摄像头 i = 0 #定时装置初始值 photoname = 1 #文件名序号初始值 while True: i = i + 1 reg, frame = cap.read() frame = cv2.flip(frame, 1) # 图片左右调换 cv2.imshow('window', frame) if i == 50: # 定时装置,定时截屏,可以修改。 filename = str(photoname) + '.png' # filename为图像名字,将photoname作为编号命名保存的截图 cv2.imwrite('C:/Users/Guaguan/Desktop/temp' + '\\' + filename, frame) # 截图 前面为路径 frame为此时的图像 print(filename + '保存成功') # 打印保存成功 i = 0 # 清零 photoname = photoname + 1 if photoname >= 20: # 最多截图20张 然后退出 break if cv2.waitKey(1) & 0xff == ord('q'):# 按下q键就退出 break # 释放资源 cap.release() video_demo() cv2.destroyAllWindows()
-
打开本地视频
import numpy as np import cv2 #? 本地视频读取 vc = cv2.VideoCapture('test.mp4') # 视频 # 检查是否打开正确 if vc.isOpened(): #* read返回2个值,第一个布尔类型,第二个是当前这一帧图像的三维数组 oepn, frame = vc.read() else: open = False while open: ret, frame = vc.read() if frame is None: break if ret == True: #* 转换为灰度图 gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) cv2.imshow('result',gray) cv2.imshow('frame',frame) # 数值越大帧数就越慢,27代表退出键(Esc) if cv2.waitKey(10) & 0xFF == 27: break vc.release() cv2.destroyAllWindows()