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
4cv2.namedWindow('Example', cv2.WINDOW_AUTOSIZE)
cv2.imshow('Example', img)
cv2.waitKey(0)
cv2.destroyWindow('Example')
2. 图像 & 视频
2.1. 基本对象
- 使用
ndarray
保存图片。 - 基本参数
1
2
3
4
5cv2.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
7cap = 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
7writer = 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操作,不说了。