OpenCV(Open Source Computer Vision Library)是一个功能强大的开源计算机视觉库,广泛用于图像处理、视频分析、特征检测、目标检测等任务。它提供了大量的函数来处理图像和视频数据。以下是一些常用的OpenCV函数及其用途:
1. 图像读取与显示
cv2.imread(filename, flags)
:读取图像文件。filename
:图像文件路径。flags
:读取图像的方式(如cv2.IMREAD_COLOR
,cv2.IMREAD_GRAYSCALE
等)。
cv2.imshow(winname, mat)
:显示图像。winname
:窗口名称。mat
:要显示的图像。
cv2.imwrite(filename, img)
:保存图像。filename
:保存的文件路径。img
:要保存的图像。
2. 图像处理
cv2.cvtColor(src, code)
:图像颜色空间转换。src
:输入图像。code
:转换类型(如cv2.COLOR_BGR2GRAY
将BGR图像转换为灰度图像)。
cv2.GaussianBlur(src, ksize, sigmaX)
:高斯模糊。src
:输入图像。ksize
:高斯核的大小。sigmaX
:高斯核在X方向的标准差。
cv2.Canny(image, threshold1, threshold2)
:边缘检测。image
:输入图像。threshold1
:第一个阈值。threshold2
:第二个阈值。
3. 图像操作
cv2.resize(src, dsize)
:调整图像大小。src
:输入图像。dsize
:目标图像的尺寸。
cv2.flip(src, flipCode)
:翻转图像。src
:输入图像。flipCode
:翻转方式(如0表示沿X轴翻转,1表示沿Y轴翻转,-1表示同时沿X和Y轴翻转)。
cv2.warpAffine(src, M, dsize)
:仿射变换。src
:输入图像。M
:变换矩阵。dsize
:输出图像的尺寸。
4. 图像阈值处理
cv2.threshold(src, thresh, maxval, type)
:图像二值化。src
:输入图像。thresh
:阈值。maxval
:最大值。type
:阈值处理类型(如cv2.THRESH_BINARY
,cv2.THRESH_BINARY_INV
等)。
5. 轮廓检测
cv2.findContours(image, mode, method)
:查找图像中的轮廓。image
:输入二值图像。- [mode](file://d:\testFun\shudu.py#L0-L0):轮廓检索模式(如
cv2.RETR_EXTERNAL
,cv2.RETR_TREE
等)。 method
:轮廓逼近方法(如cv2.CHAIN_APPROX_SIMPLE
)。
cv2.drawContours(image, contours, contourIdx, color, thickness)
:绘制轮廓。image
:绘制轮廓的图像。contours
:轮廓列表。contourIdx
:轮廓索引(-1表示所有轮廓)。color
:轮廓颜色。thickness
:轮廓线宽。
6. 特征检测
cv2.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance)
:检测图像中的角点。image
:输入图像。maxCorners
:最多检测的角点数。qualityLevel
:角点质量阈值。minDistance
:角点之间的最小距离。
cv2.SIFT_create()
:创建SIFT特征检测器。cv2.SURF_create()
:创建SURF特征检测器。
7. 视频处理
cv2.VideoCapture(filename)
:打开视频文件或摄像头。filename
:视频文件路径或摄像头索引(如0表示默认摄像头)。
cv2.read()
:从视频流中读取帧。cv2.VideoWriter(filename, fourcc, fps, frameSize)
:写入视频文件。filename
:输出视频文件路径。fourcc
:编码格式(如cv2.VideoWriter_fourcc(*'XVID')
)。fps
:帧率。frameSize
:帧的尺寸。
8. 深度学习
cv2.dnn.readNetFromCaffe(prototxt, caffeModel)
:从Caffe模型中加载网络。prototxt
:模型的结构文件。caffeModel
:模型的权重文件。
cv2.dnn.blobFromImage(image, scalefactor, size, mean, swapRB, crop)
:将图像转换为深度学习模型所需的blob格式。image
:输入图像。scalefactor
:缩放因子。- [size](file://d:\testFun\shudu.py#L0-L0):输出图像的尺寸。
mean
:均值。swapRB
:是否交换红蓝通道。crop
:是否裁剪图像。open