OpenCV , 摄像头视频抓取:
电脑可能会有几个摄像头,
注意指定摄像头:
capture = cv2.VideoCapture(1, cv2.CAP_DSHOW)
另外图像抓取后,是以每一帧 frame来 显示的,
要注意 frame 是否颠倒。
使用 flip 函数。
frame = cv2.flip(src,1)
1: 水平方向 180度
0:垂直方向 180度
-1:水平和垂直 180度
import cv2 import numpy as np def video_demo(): capture = cv2.VideoCapture(1, cv2.CAP_DSHOW) while True: ret, frame = capture.read() frame = cv2.flip(frame, 1) cv2.imshow("video", frame) c = cv2.waitKey(50) if c == 27: break def get_image_info(image): print(type(image)) print(image.shape) print(image.size) print(image.dtype) pixel_data = np.array(image) print(pixel_data) print("-------------Hello Python--------------") src = cv2.imread(r'F:Python_AIimagesRose001.jpg') cv2.imshow("image", src) get_image_info(src) # video_demo() gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) cv2.imwrite(r'F:Python_AIRet_Picgray.png', gray) cv2.waitKey(0) cv2.destroyAllWindows()
image.shape = (高度heigh,宽度width,通道数channels),宽度,高度为图片的像素。
image.size = 高度 * 宽度 * 通道数
image.dtype = uint8 ,8位无符号数的整数