目录
一. OpenCV的函数
1. 常用函数
2. 以字母“a”开头的函数
3. 以字母“b”开头的函数
4. 以字母“c”开头的函数
5. 以字母“d”开头的函数
6. 以字母“e”开头的函数
7. 以字母“f”开头的函数
8. 以字母“g”开头的函数
9. 以字母“i”开头的函数
10. 以字母“j”开头的函数
11. 以字母“k”开头的函数
12. 以字母“l”开头的函数
13. 以字母“m”开头的函数
14. 以字母“n”开头的函数
15. 以字母“o”开头的函数
16. 以字母“p”开头的函数
17. 以字母“q”开头的函数
18. 以字母“r”开头的函数
19. 以字母“s”开头的函数
20. 以字母“t”开头的函数
21. 以字母“u”开头的函数
22. 以字母“v”开头的函数
23. 以字母“w”开头的函数
24. 以字母“x”开头的函数
25. 以字母“y”开头的函数
26. 以字母“z”开头的函数
二. Numpy的常用函数:
opencv-python
是 OpenCV 的一个 Python 接口库,允许 Python 开发者使用 OpenCV 中广泛使用的图像处理工具。OpenCV 是一个开源计算机视觉库,可用于处理图像和视频。
opencv-python
库提供了非常多的图像处理功能,包括图像滤波、变换、特征检测、物体识别等。通过调用这些功能,开发人员可以轻松地在 Python 中实现各种常见的图像处理应用。
特别是在机器学习领域,opencv-python
也起到了很大的作用。例如,在图像分类、目标识别和人脸识别等任务中,用 OpenCV 提取图像的特征后,再将其输入到其他机器学习算法中进行分类或识别。
在安装和使用 opencv-python
库时,需要注意一些事项。首先,安装前需要先安装 NumPy 库,以便支持 OpenCV 中的矩阵操作。其次,库中的一些函数可能需要调用底层库(例如 BLAS 和 LAPACK),这些库可能需要单独安装才能正常使用。
总的来说,opencv-python
是一个非常实用的图像处理工具库,如果需要进行图像或计算机视觉相关的开发工作,这个库可以为您提供丰富的功能和便捷的接口。
函数 | 功能解释 | 示例 |
---|---|---|
cv2.imread() | 读取图像 | img = cv2.imread('image.jpg') |
cv2.imshow() | 在窗口中显示图像 |
|
cv2.split() | 多通道的图像数组拆分成若干个单通道的数组 | b, g, r = cv2.split(img) |
cv2.merge() | 多个单通道数组合并为一个多通道的数组 | img = cv2.merge((b, g, r)) |
cv2.waitKey() | 等待键盘输入 | key = cv2.waitKey(0) |
cv2.cvtColor() | 转换图像颜色空间 | gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) |
cv2.rectangle() | 在图像中绘制矩形 | cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2) |
cv2.circle() | 在图像中绘制圆形 | cv2.circle(img, (x, y), radius, (255, 0, 0), -1) |
cv2.line() | 在图像中绘制线条 | cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 3) |
cv2.putText() | 在图像中加入文本 | cv2.putText(img, 'Hello, OpenCV!', (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2) |
cv2.threshold() | 图像阈值处理 | ret, thresh = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY) |
cv2.Canny() | 边缘检测 | edges = cv2.Canny(img, threshold1=100, threshold2=200) |
cv2.GaussianBlur() | 图像高斯模糊 | blurred_img = cv2.GaussianBlur(img, (5, 5), 0) |
cv2.findContours() | 查找图像轮廓 | contours, hierarchy = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) |
函数 | 功能解释 | 示例 |
---|---|---|
accumulate() | 累加数组元素 | dst = cv2.accumulate(src) |
accumulateProduct() | 累加相乘运算后的结果 | dst = cv2.accumulateProduct(src1, src2) |
accumulateSquare() | 累加每个数组元素的平方 | dst = cv2.accumulateSquare(src) |
add() | 将两个数组逐元素相加 | dst = cv2.add(src1, src2) |
addWeighted() | 按权重添加两个数组 | dst = cv2.addWeighted(src1, alpha, src2, beta, gamma) |
adaptiveThreshold() | 二值化图像 | thresh = cv2.adaptiveThreshold(img, maxValue, adaptiveMethod, thresholdType, blockSize, C) |
alignedROI() | 计算两个矩形相交区域 | roi = cv2.alignedROI(rect1, rect2, size, center) |
函数 | 功能解释 | 示例 |
---|---|---|
cv2.blur() | 对图像进行均值滤波操作 | r = cv2.blur(o, (5,5)) - 对o图像进行5x5的均值滤波,存储结果到r中。 |
bitwise_and() | 逐位与运算 | dst = cv2.bitwise_and(src1, src2, mask=mask) |
bitwise_not() | 逐位非运算 | dst = cv2.bitwise_not(src, dst=None, mask=None) |
bitwise_or() | 逐位或运算 | dst = cv2.bitwise_or(src1, src2, mask=mask) |
bitwise_xor() | 逐位异或运算 | dst = cv2.bitwise_xor(src1, src2, mask=mask) |
borderInterpolate() | 插值像素边界模式 | value = cv2.borderInterpolate(p, len, borderType) |
boundingRect() | 计算轮廓的边界矩形 | x,y,w,h = cv2.boundingRect(cnt) |
boxFilter() | 方框滤波器 | dst = cv2.boxFilter(src, ddepth, ksize, anchor=None, normalize=None, borderType=None) |
函数 | 功能解释 | 示例 |
---|---|---|
calcBackProject() | 计算反向投影图像 | backproj = cv2.calcBackProject([hsv], [0,1], roi_hist, [0,180,0,256], 1) |
calcHist() | 计算图像的直方图 | hist = cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) |
Canny() | 使用Canny算法进行边缘检测 | edges = cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]]) |
circle() | 在图像中绘制圆形 | cv2.circle(img, center, radius, color[, thickness[, lineType[, shift]]]) |
compare() | 对两个数组元素逐个比较,并根据比较结果对输出数组分配0或255 | diff = cv2.compare(src1, src2, cmpop) |
contourArea() | 计算轮廓区域面积 | area = cv2.contourArea(cnt) |
convexHull() | 查找一组点的凸包 | hull = cv2.convexHull(points[, hull[, clockwise[, returnPoints]]]) |
cornerHarris() | 检测图像中的角点 | dst = cv2.cornerHarris(src, blockSize, ksize, k[, dst[, borderType]]) |
cvtColor() | 将图像从一个颜色空间转换到另一个颜色空间 | dst = cv2.cvtColor(src, code[, dst[, dstCn]]) |
createBackgroundSubtractorKNN() | 创建适用于动态背景下的前景/背景分割器 | fgbg = cv2.createBackgroundSubtractorKNN() |
createCLAHE() | 创建自适应直方图均衡化器 | clahe = cv2.createCLAHE(clipLimit, tileGridSize) |
createTrackbar() | 创建滑动条 | cv2.createTrackbar(trackbarName, windowName, value, count, onChange) |
函数 | 功能解释 | 示例 |
---|---|---|
demosaicing() | 彩色图像插值算法 | dst = cv2.demosaicing(src, code, dst=None) |
dilate() | 膨胀操作 | dst = cv2.dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) |
distanceTransform() | 距离变换 | dst = cv2.distanceTransform(src, distanceType, maskSize, dstType) |
drawContours() | 绘制轮廓 | img = cv2.drawContours(img, contours, contourIdx, color, thickness=None, lineType=None, hierarchy=None, maxLevel=None, offset=None) |
函数 | 功能解释 | 示例 |
---|---|---|
ellipse() | 在图像中绘制椭圆形 | img = cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None) |
ellipse2Poly() | 椭圆边界转换为多边形 | pts = cv2.ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) |
equalizeHist() | 直方图均衡化 | dst = cv2.equalizeHist(src) |
erode() | 腐蚀操作 | dst = cv2.erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) |
函数 | 功能解释 | 示例 |
---|---|---|
cv2.flip() | 对图像进行翻转 | b = cv2.flip(a, 0) 0:x 1:y |
FastFeatureDetector() | 快速特征检测器 | fd = cv2.FastFeatureDetector_create(threshold=50) |
filter2D() | 卷积操作 | dst = cv2.filter2D(src, ddepth, kernel, anchor=None, delta=None, borderType=None) |
findContours() | 查找图像中的轮廓 | contours, hierarchy = cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) |
函数 | 功能解释 | 示例 |
---|---|---|
GaussianBlur() | 高斯模糊处理 | dst = cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None) |
getAffineTransform() | 计算仿射变换矩阵 | M = cv2.getAffineTransform(pts1, pts2) |
getGaborKernel() | 创建Gabor滤波器核函数 | kernel = cv2.getGaborKernel(ksize, sigma, theta, lambd, gamma, psi=None, ktype=None) |
getOptimalNewCameraMatrix() | 扭曲校正并调整相机矩阵 | newcameramtx, roi = cv2.getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha, newImgSize=(-1, -1), centerPrincipalPoint=None) |
函数 | 功能解释 | 示例 |
---|---|---|
cv2.imread() | 加载一个图像文件并返回一个 NumPy 数组 | img = cv2.imread('example.jpg', cv2.IMREAD_COLOR) |
imdecode() | 将编码图像数据解码为图像 | img = cv2.imdecode(buf, flag[, dst]) |
imencode() | 将图像数据编码为指定格式 | result, encimg = cv2.imencode(ext, img[, params]) |
imshow() | 在窗口中显示图像 | cv2.imshow(winname, mat) |
inRange() | 使用特定阈值范围进行图像阈值处理 | mask = cv2.inRange(src, lowerb, upperb[, dst]) |
insertChannel() | 将数组插入通道 | dst = cv2.insertChannel(src, dst, coi) |
integral() | 计算一幅图像的积分图像 | sum = cv2.integral(img[, sum[, sdepth]]) |
idct() | 反离散余弦变换 | dst = cv2.idct(src[, dst[, flags]]) |
idft() | 反傅里叶变换 | result = cv2.idft(src, flags=none, nonzeroRows=None) |
函数 | 功能解释 | 示例 |
---|---|---|
JPEGDecoder() | 解码JPEG格式图像 | jpeg_decoder = cv2.jpeg_decoder.JPEGDecoder() |
函数 | 功能解释 | 示例 |
---|---|---|
KalmanFilter() | Kalman滤波器 | kalman = cv2.KalmanFilter(states, meas, type, control=None, dynamics=None, measurement=None) |
函数 | 功能解释 | 示例 |
---|---|---|
Laplacian() | 拉普拉斯算子运算 | dst = cv2.Laplacian(src, ddepth, ksize=None, scale=None, delta=None, borderType=None) |
line() | 在图像中绘制直线 | img = cv2.line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None) |
load() | 从文件读取数据到numpy数组 | ary = cv2.load(filename, flags=None) |
log() | 计算元素的自然对数 | dst = cv2.log(src[, dst]) |
函数 | 功能解释 | 示例 |
---|---|---|
matchShapes() | 计算两个图像或轮廓之间的形状相似性 | ret = cv2.matchShapes(contour1, contour2, method, parameter=0.0) |
medianBlur() | 中值滤波器 | dst = cv2.medianBlur(src, ksize) |
merge() | 合并多个通道的数组 | merged = cv2.merge(channels) |
minEnclosingCircle() | 获得包含一组点的最小圆的半径和中心 | center, radius = cv2.minEnclosingCircle(points) |
minMaxLoc() | 查找数组中的最小值和最大值 | minVal, maxVal, minLoc, maxLoc = cv2.minMaxLoc(src[, mask]) |
moments() | 图像的几何矩计算 | M = cv2.moments(img[, binaryImage]) |
morphologyEx() | 形态学变换 | dst = cv2.morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) |
函数 | 功能解释 | 示例 |
---|---|---|
namedWindow() | 创建用于调试目的的窗口 | cv2.namedWindow(winname[, flags]) |
normalize() | 将输入数组规范化到给定的范围内 | dst = cv2.normalize(src[, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]]) |
函数 | 功能解释 | 示例 |
---|---|---|
OctaveBand() | 第三倍频带滤波器 | band = cv2.OctaveBandFilter_create(freq1, freq2, fftsize=None, gap=None) |
函数 | 功能解释 | 示例 |
---|---|---|
PCACompute() | 计算主成分分析 | mean, eigenvectors, eigenvalues = cv2.PCACompute(data, mean=None, maxComponents=None) |
perspectiveTransform() | 透视变换 | dst = cv2.perspectiveTransform(src, M) |
phaseCorrelate() | 相位相关法进行图像对齐 | retval, response = cv2.phaseCorrelate(src1, src2[, window]) |
pointPolygonTest() | 测试点是否在轮廓内 | distance = cv2.pointPolygonTest(contour, pt, measureDist) |
polarToCart() | 从极坐标转换为笛卡尔坐标 | x, y = cv2.polarToCart(magnitude, angle[, angleInDegrees[, thetaClockwise]]) |
函数 | 功能解释 | 示例 |
---|---|---|
quickshift() | 图像的颜色分割和超像素分割算法 | labels = cv2.ximgproc.segmentation.createQuickShiftImageFilter(img, kernelSize, maxDist, ratio) |
函数 | 功能解释 | 示例 |
---|---|---|
randn() | 产生随机数 | dst = cv2.randn(dst, mean, stddev) |
randu() | 产生随机数 | dst = cv2.randu(dst, low, high) |
rectangle() | 在图像中绘制矩形 | img = cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None) |
reduce() | 沿着指定轴降采样数组 | dst = cv2.reduce(src, dim[, rtype[, dtype]]) |
remap() | 地图转换 | dst = cv2.remap(src, map1, map2, interpolation[, dst[, borderMode[, borderValue]]]) |
repeat() | 复制单通道或多通道数组 | dst = cv2.repeat(src, ny, nx[, dst]) |
resize() | 缩放图像大小 | dst = cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) |
Rodrigues() | 将旋转矩阵转换为旋转向量或将旋转向量转换为旋转矩阵 | dst, jacobian = cv2.Rodrigues(src[, dst[, jacobian]]) |
rotate() | 旋转图像 | M = cv2.getRotationMatrix2D(center, angle, scale) rotated = cv2.warpAffine(img, M, (w,h)) |
函数 | 功能解释 | 示例 |
---|---|---|
Scharr() | 计算Sobel x或y方向上的导数运算 | dst = cv2.Scharr(src, ddepth, dx, dy[, dst[, scale[, delta[, borderType]]]]) |
seamFinder.find() | 图像拼接时寻找水平缝线 | seam_finder.find(images_warped, corners, masks=None) |
SEMILAGRANGIAN() | 向后图像曲线变形 | dst = cv2.ximgproc.SEMILAGRANGIAN(src, velocityField, dest=None, deltaTime=0.25, deltaWeight=0.1, omega=0.1, method=cv2.ximgproc.MOTION_AMPLITUDE_COMPENSATION_LK, nlss=True, fixMissing=False, kernelSize=3) |
SimpleBlobDetector() | 简单的圆形斑点检测器 | blob_detector = cv2.SimpleBlobDetector_create([params]) |
Sobel() | Sobel边缘检测算子 | dx = cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) |
函数 | 功能解释 | 示例 |
---|---|---|
threshold() | 按阈值分类 | retval, dst = cv2.threshold(src, thresh, maxval, type[, dst]) |
triangulatePoints() | 三角化给定的二维点集和相关的二维投影 | retval, points4D = cv2.triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2) |
函数 | 功能解释 | 示例 |
---|---|---|
undistort() | 去除图像中的扭曲 | dst = cv2.undistort(src, cameraMatrix, distCoeffs[, dst[, newCameraMatrix]]) |
UndistortResult() | 相机标定所得到的像素、世界距离转换结果 | UndistortResult() |
unsharpMask() | 针对输入图像进行锐化增强处理 | filt = cv2.ximgproc.createUnsharpMask(img, smth, unsharpStrength) |
函数 | 功能解释 | 示例 |
---|---|---|
VideoCapture() | 从摄像头或视频文件读取帧 | cap = cv2.VideoCapture(index / filename[, APIPreference]) |
VideoWriter() | 视频编码 | output_video = cv2.VideoWriter(filename, fourcc, fps, frame_size[, isColor]) |
ViterbiInvoker() | 估计有噪声的序列 | ViterbiInvoker = cv2.text.ViterbiInvoker() |
函数 | 功能解释 | 示例 |
---|---|---|
watershed() | 分割有明显边界的图像 | markers = cv2.watershed(img, markers) |
函数 | 功能解释 | 示例 |
---|---|---|
XiaoYingBeauty() | 魔法棒、美颜特效等视频处理 | beauty = cv2.xfeatures2d.XiaoYingBeauty() |
XiaoYingSticker() | 视频拍摄中给定特定区域打标签的预处理 | stickers = cv2.xfeatures2d.XiaoYingSticker() |
函数 | 功能解释 | 示例 |
---|---|---|
YoloObjectDetector() | 图像物体检测 | yolo_object_detector = cv2.dnn_YoloObjectDetector(weights, config) |
函数 | 功能解释 | 示例 |
---|---|---|
zip() | 对每个元素依次取出,再把所有对应的元素打包成一个tuple。 | z = zip([1, 2, 3], [4, 5, 6]) |
函数 | 功能 | 示例 |
---|---|---|
np.array |
创建一个 ndarray 数组 |
a = np.array([1, 2, 3]) |
np.zeros |
创建一个全零的 ndarray 数组 |
a = np.zeros((2, 3)) |
np.ones |
创建一个全一的 ndarray 数组 |
a = np.ones((2, 3)) |
np.full |
创建一个指定值的 ndarray 数组 |
a = np.full((2, 3), 5) |
np.arange |
创建一个等差数列 | a = np.arange(1, 6, 2) |
np.linspace |
创建一个等差数列 | a = np.linspace(1, 2, 5) |
np.random.rand |
创建一个随机数组 | a = np.random.rand(3, 2) |
np.random.randn |
创建一个符合标准正态分布的随机数组 | a = np.random.randn(3, 2) |
ndarray.shape |
返回 ndarray 数组的维度 |
a.shape |
ndarray.ndim |
返回 ndarray 数组的秩 |
a.ndim |
ndarray.size |
返回 ndarray 数组中的元素数量 |
a.size |
ndarray.reshape |
按指定的形状重构 ndarray 数组 |
b = a.reshape((3,2)) |
ndarray.flatten |
将 ndarray 数组变为一维数组 |
b = a.flatten() |
ndarray.min |
返回 ndarray 数组中的最小值 |
a.min() |
ndarray.max |
返回 ndarray 数组中的最大值 |
a.max() |
ndarray.sum |
返回 ndarray 数组中的所有元素的和 |
a.sum() |
ndarray.mean |
返回 ndarray 数组中的所有元素的平均值 |
a.mean() |
ndarray.std |
返回 ndarray 数组中的所有元素的标准偏差 |
a.std() |
ndarray.dot |
计算两个数组的点积 | a.dot(b) |
np.concatenate |
沿着指定的轴将两个或多个数组拼接在一起 | c = np.concatenate((a, b), axis=0) |