Python手册(6) cv2

0. 前言

  • 参考《Learning OpenCV 3》中 C++ API 的内容,整理Python API。

1. 展示窗口

1.1. 流水账

  • cv2.namedWindow('Example', cv2.WINDOW_AUTOSIZE)
    • 构建窗口。
    • 第一个参数是框的名称,第二个用于尺寸参数。
  • cv2.imshow('Example', img)
    • 在窗口中展示图片。
    • 第一个参数用于选择定义过的 cv::namedWindow,第二个参数是图像对象,即ndarray对象。
  • cv2.waitKey(0)
    • 停留在当前画面的时间。
    • 如果是0,则无限停留;如果是数字,则停留对应的毫秒。
    • 返回值是按下按钮的ASCII码。
  • cv2.destroyWindow('Example')
    • 关闭窗口。
    • 参数是窗口名称。

1.2. 应用

  • 创建窗口,显示图片,按键结束,销毁窗口。
    1
    2
    3
    4
    cv2.namedWindow('Example', cv2.WINDOW_AUTOSIZE)
    cv2.imshow('Example', img)
    cv2.waitKey(0)
    cv2.destroyWindow('Example')

2. 图像 & 视频

2.1. 基本对象

  • 使用ndarray保存图片。
  • 基本参数
    1
    2
    3
    4
    5
    cv2.CAP_PROP_FRAME_COUNT // 总帧数
    cv2.CAP_PROP_FRAME_WIDTH // 宽度
    cv2.CAP_PROP_FRAME_HEIGHT // 高度
    cv2.CAP_PROP_POS_FRAMES // 当前位置(在第几帧)
    cv2.CAP_PROP_FPS // FPS

2.2. 数字图像处理

  • cv2.GaussianBlur
  • cv2.pyrDown, cv2.pyrUp
  • cv2.cvtColor
  • cv2.Canny
  • cv2.logPolar

2.3. 应用

  • 读取图片

    1
    cv2.imread('/path/to/image', -1)
  • 读取视频

    1
    2
    3
    4
    5
    6
    7
    cap = cv2.VideoCapture()
    cap.open('/path/to/mp4')
    flag, frame = cap.read()
    while flag:
    ...
    cv2.imshow('Example', frame)
    flag, frame = cap.read()
  • 新建视频文件

    1
    2
    3
    4
    5
    6
    7
    writer = cv2.VideoWriter('./test.mp4', cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), fps, size)
    // writer = cv2.VideoWriter('./test.mp4', -1, fps, size)
    ...
    while flag:
    ...
    writer.write(frame)
    writer.release()
  • 获取/设置图像中某一位置的像素值:numpy操作,不说了。