install §
conda install -c conda-forge opencv
: 包含 H264
pip install opencv-python
cv2 §
cv2.imread(<img>)
: 读取图片
<img>.shape
: 图像大小(返回元组(高, 宽, 像素的通道数))
.imshow()
: 显示图片
.waitKey()
: 值为 0 时,表示等任意键按下后关闭
- selectROI : 画 ROI
预览 §
import cv2
# 图片预览
img = cv2.imread('test.jpg') # 打开图片
cv2.imshow('name', img) # 显示图片
cv2.waitKey(0) # 参数毫秒,为 0 则一直等待
cv2.destroyAllWindows() # 销毁所有窗口
视频写入 §
import cv2
cap = cv2.VideoCapture(rtsp_url)
# 获取视频分辨率
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
# 获取视频帧率
fps = int(cap.get(cv2.CAP_PROP_FPS))
# 设置视频格式
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
# 调用VideoWrite()函数
videoWrite = cv2.VideoWriter(f"{save_file}.mp4", fourcc, fps, size)
cv2.VideoWriter_fourcc()
/ cv2.cv.CV_FOURCC()
:设置视频格式
- cv2.cv.CV_FOURCC(‘P’, ‘I’, ‘M’, ‘1’) = MPEG-1 codec
- cv2.cv.CV_FOURCC(‘M’, ‘J’, ‘P’, ‘G’) = motion-jpeg codec
- cv2.cv.CV_FOURCC(‘M’, ‘P’, ‘4’, ‘2’) = MPEG-4.2 codec
- cv2.cv.CV_FOURCC(‘D’, ‘I’, ‘V’, ‘3’) = MPEG-4.3 codec
- cv2.cv.CV_FOURCC(‘D’, ‘I’, ‘V’, ‘X’) = MPEG-4 codec
- cv2.cv.CV_FOURCC(‘U’, ‘2’, ‘6’, ‘3’) = H263 codec
- cv2.cv.CV_FOURCC(‘I’, ‘2’, ‘6’, ‘3’) = H263I codec
- cv2.cv.CV_FOURCC(‘F’, ‘L’, ‘V’, ‘1’) = FLV1 codec
剪裁图片 §
# 通过 imread 打开图片后,直接进行处理
img = cv2.imread(image_file)
img = img[:height, :width]
- img[]
- 高开始(最上面为 0): 高结束
- 宽开始: 宽结束
函数 §
retval, dst = threshold(src, thresh, maxval, type, dst=None)
- src: 原图
- thresh: 阈值
- maxval: 最大值
- dst: 处理后图像
- type: 处理类型
- cv.THRESH_BINARY: 二值处理
- cv.THRESH_BINARY_INV: 反二值处理
- cv.THRESH_TRUNC: 截断阈值化
- cv.THRESH_TOZERO: 阈值化为 0
- cv.THRESH_TOZERO_INV: 反阈值化为 0
设置 §
超时设置 §
import os
import cv2
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "timeout;5000"
cap=cv2.VideoCapture(self.__rtsp_url,cv2.CAP_FFMPEG)
参考 §