OpenCV 视频抓取

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位无符号数的整数

原文地址:https://www.cnblogs.com/xuwenwei/p/14467831.html