img = cv2.imread(file) # BGR
读取图片
cv2.imwrite(file, img[ymin:ymax, xmin:xmax])
保存图片
cv2.setNumThreads(0)
禁用线程优化
im = cv2.resize(cutout, (224, 224)) # BGR
图像缩放,采用双线性插值
cv2.rectangle(img, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA)
画一个简单矩形
cv2.rectangle(mosaic, (block_x, block_y), (block_x + w, block_y + h), (255, 255, 255), thickness=3)
t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
计算文本尺寸
cv2.putText(img, label, (c1[0], c1[1] - 2), 0, tl / 3, [225, 255, 255], thickness=tf, lineType=cv2.LINE_AA)
绘制文本
self.cap = cv2.VideoCapture(path) # 初始化视频对象
视频,可以是路径,可以是摄像头
self.nframes = int(self.cap.get(cv2.CAP_PROP_FRAME_COUNT)) # 视频文件中的总帧数
视频帧数
self.cap.set(cv2.CAP_PROP_BUFFERSIZE, 3)
图像亮度(仅适用于相机)
if cv2.waitKey(1) == ord('q'): # q to quit
图片出现,等的时间,ms单位
cv2.destroyAllWindows()
关掉所有窗口
img0 = cv2.flip(img0, 1)
水平翻转图片
w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
获取视频宽度信息
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
获取视频高度信息
fps = cap.get(cv2.CAP_PROP_FPS)
获取视频帧率
cv2.INTER_AREA
缩小放大图像尺寸采用的插值函数
hue, sat, val = cv2.split(cv2.cvtColor(img, cv2.COLOR_BGR2HSV))
split分离图像通道,cvtColor转换颜色空间,cv2.COLOR_BGR2HSV,BGR颜色空间转换为HSV
img_hsv = cv2.merge((cv2.LUT(hue, lut_hue), cv2.LUT(sat, lut_sat), cv2.LUT(val, lut_val))).astype(dtype)
merge组合通道,LUT调整通道的值
cv2.cvtColor(img_hsv, cv2.COLOR_HSV2BGR, dst=img)
转换颜色通道,从HSV到BGR
img = cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color)
黑框填充
R[:2] = cv2.getRotationMatrix2D(angle=a, center=(0, 0), scale=s)
获得2D的旋转矩阵
img = cv2.warpPerspective(img, M, dsize=(width, height), borderValue=(114, 114, 114))
透视变换函数
img = cv2.warpAffine(img, M[:2], dsize=(width, height), borderValue=(114, 114, 114))
仿射变换函数