opencv-python 是 [[OpenCV]] 的 [[Python]] 库,用于图像处理和计算机视觉。
安装
可以通过 [[pip]] 安装:
pip install opencv-python
如果需要支持 H264 编解码,并且非 [[macOS]] 系统,可以使用 [[Conda]] 安装:
conda install -c conda-forge opencv
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 osimport cv2
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "timeout;5000"cap=cv2.VideoCapture(self.__rtsp_url,cv2.CAP_FFMPEG)