OpenCV-Python常用函数汇总
OpenCV Python
- OpenCV简述
- 显示窗口
- waitKey():等待按键输入
- namedWindow():创建窗口
- destroyWindow() :注销指定窗口
- destroyAllWindows() 注销全部窗口
- resizeWindow() 调整窗口尺寸
- 图像操作
- imread():读取图像
- imwrite():保存图像
- imshow():显示图片
- 视频操作
- VideoCapture():视频捕获
- VideoWriter():视频写入
- VideoWriter_fourcc():视频格式
- 图形绘图
- 事件处理
OpenCV简述
显示窗口
waitKey():等待按键输入
waitKey(delay=…)
- 功能:等待键盘按键输入。
- delay:等待时间,单位毫秒。0或不填写阻塞等待。
- 返回:键盘按下的键值。
- 注意:64位系统需要增加&0xFF,cv2.waitKey(0)&0xFF
namedWindow():创建窗口
namedWindow(winname, flags: int = …)
- 功能:创建窗口
- winname:窗口名称
- flags:
cv2.WINDOW_AUTOSIZE:默认设置
cv2.WINDOW_NORMAL:可以调整窗口大小
cv2.WINDOW_FULLSCREEN:全屏
cv2.WINDOW_KEEPRATIO:保持纵横比例
destroyWindow() :注销指定窗口
destroyWindow(winname)
- 功能:注销指定窗口。
- winname:要注销的窗口名称。
destroyAllWindows() 注销全部窗口
destroyAllWindows()
- 功能:注销全部窗口
resizeWindow() 调整窗口尺寸
resizeWindow(winname, width, height)
- 功能:调整窗口大小
- winname:窗口名称
- width:调整窗口目标宽度
- height:调整窗口目标高度
# 示例代码
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像操作
imread():读取图像
imread(filename: str, flags: int = …)
- 功能:读取图像数据
- filename:图像文件名称(包含路径)
- flags:
cv.IMREADCOLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。
cv.IMREADGRAYSCALE:以灰度模式加载图像
cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式
以上参数可以直接用(1,0,-1)替换
# 读取图像img1 = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_COLOR) # 彩色img2 = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_GRAYSCALE) # 灰度
imwrite():保存图像
imwrite(filename: str, img: Mat, params: typing.List[int] = …)
- 功能:保存图像到指定路径
- filename:保存图像的路径
- img:要保存的图像数据
# 写入文件
cv2.imwrite('./opencv/images/1-out.jpg', img1)
cv2.imwrite('./opencv/images/2-out.jpg', img2)
imshow():显示图片
imshow(winname, mat)
- 功能:显示图片
- winname:窗口名称
- mat:图片数据
cv2.imshow('img', img)
matplotlib显示彩色图片
import numpy as np
import cv2
from matplotlib import pyplot as pltif __name__ == "__main__":img = cv2.imread('./opencv/images/1.jpg', cv2.IMREAD_COLOR)img2 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR转RGBplt.imshow(img2)plt.xticks([]), plt.yticks([]) # 隐藏X,Y轴数值显示plt.show()
matplotlib显示灰度图片
import numpy as np
import cv2
from matplotlib import pyplot as pltif __name__ == "__main__":img = cv2.imread('./resource/image/1.jpg', cv2.IMREAD_GRAYSCALE)plt.imshow(img, cmap='gray', interpolation='bicubic')plt.xticks([]),plt.yticks([]) # to hide tick values on X and Y axisplt.show()
视频操作
VideoCapture():视频捕获
- 视频捕获:VideoCapture()
VideoWriter():视频写入
- 视频写入:VideoWriter()
VideoWriter_fourcc():视频格式
VideoWriter_fourcc(c1, c2, c3, c4)
图形绘图
- 画线:line()
- 矩形:rectangle()
- 画圆:circle()
- 椭圆:ellipse()
- 多边形:polylines()
- 添加文字:putText()
line(img: Mat, pt1, pt2, color, thickness=…, lineType=…, shift=…)
rectangle(img: Mat, pt1, pt2, color, thickness=…, lineType=…, shift=…)
circle(img: Mat, center, radius, color, thickness=…, lineType=…, shift=…)
ellipse(img: Mat, center, axes, angle, startAngle, endAngle, color, thickness=…, lineType=…, shift=…)
polylines(img: Mat, pts, isClosed, color, thickness=…, lineType=…, shift=…)
putText(img: Mat, text, org, fontFace, fontScale, color, thickness=…, lineType=…, bottomLeftOrigin=…)
事件处理
- setMouseCallback()