3小时精通opencv(一)图片,视频,摄像头的读取

3小时精通opencv(一)图片,视频,摄像头的读取

参考视频资源:3h精通Opencv-Python


图片读取

# 读取图片
img = cv2.imread('Resources/lena.png')

cv2.imshow('lena', img)
cv2.waitKey(0)
  • cv2.imread(需要读取图片的路径)
  • cv2.imshow(窗口的名字, 需要展示的图片)
  • cv2.waitKey(图片展示的时间(毫秒)) waitkey控制着imshow的持续时间, 需要和imshow一起使用, 他会在一定时间内等待接收键盘上的一个值
    • 若参数delay≤0:表示一直等待按键;
    • delay取正整数:表示等待按键的时间, 以毫秒为单位

视频读取

cap = cv2.VideoCapture("Resources/test_video.mp4")

while True:
    success, img = cap.read()
    cv2.imshow('Video', img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

视频读取的格式比较固定, 通过循环不断输出每帧的图片, 达到输出视频的效果, 本质上还是对图片的输出

  • success, img = cap.read()
    • 参数success代表有没有读取到图片
    • 参数img表示截取到一帧的图片
  • cv2.waitKey(1) & 0xFF == ord('q') 当键盘输入q时退出播放

摄像头读取

# 使用电脑摄像头
cap = cv2.VideoCapture(0)  # 0表示默认摄像头
frameWidth = 640
frameHeight = 480

cap.set(3, frameWidth)  # 参数:3:在视频流的帧的宽度
cap.set(4, frameHeight)  # 参数:4:在视频流的帧的高度
cap.set(10, 100)  # 参数:10:图像的亮度(仅适用于照相机)

while True:
    success, img = cap.read()
    cv2.imshow('Video', img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

调用摄像头与读取视频类似

  • cv2.VideoCapture(0) 这里的0表示使用电脑默认摄像头, 如果有多个摄像头的话也可以用1,2参数来调用其他摄像头

摄像头各参数详解见该博文
这里只是简单的设置了视频流的宽高和亮度

print(cv2.CAP_PROP_FRAME_WIDTH)  # 3
print(cv2.CAP_PROP_FRAME_HEIGHT)  # 4
print(cv2.CAP_PROP_BRIGHTNESS)  # 10
cap.set(cv2.CAP_PROP_FRAME_WIDTH, frameWidth)  # 参数:3:在视频流的帧的宽度
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, frameHeight)  # 参数:4:在视频流的帧的高度
cap.set(cv2.CAP_PROP_BRIGHTNESS, 100)  # 参数:10:图像的亮度(仅适用于照相机)

猜你喜欢

转载自blog.csdn.net/Weary_PJ/article/details/128745445