赞
踩
目录
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) <br>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) |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。