OpenCV(Open Source Computer Vision Library) —— 开源计算机视觉库
是一个开源计算机视觉库,
提供广泛的图像处理和计算机视觉算法。
它被广泛用于各种应用中,包括图像处理、视频分析、机器学习和机器人技术。
基本概念
- 图像: 一个二维数组,其中每个元素表示图像中一个像素的强度或颜色。
- 矩阵: 一个多维数组,用于表示图像、特征和变换。
- 感兴趣区域 (ROI): 图像中要处理的特定区域。
- 内核: 用于卷积和形态学操作的矩阵。
图像处理
- 读取和写入图像:
cv2.imread()
和cv2.imwrite()
- 图像转换:
cv2.cvtColor()
、cv2.resize()
和cv2.flip()
- 图像增强:
cv2.equalizeHist()
、cv2.blur()
和cv2.threshold()
- 形态学操作:
cv2.erode()
、cv2.dilate()
和cv2.morphologyEx()
特征检测和描述
- 边缘检测:
cv2.Canny()
和cv2.Sobel()
- 角点检测:
cv2.goodFeaturesToTrack()
和cv2.HarrisCornerDetector()
- 特征描述:
cv2.SIFT()
、cv2.SURF()
和cv2.ORB()
图像匹配和识别
- 特征匹配:
cv2.BFMatcher()
和cv2.FlannBasedMatcher()
- 图像拼接:
cv2.Stitcher()
- 对象识别:
cv2.CascadeClassifier()
和cv2.HOGDescriptor()
视频分析
- 视频捕获:
cv2.VideoCapture()
- 运动检测:
cv2.BackgroundSubtractorMOG2()
- 目标跟踪:
cv2.TrackerKCF()
、cv2.TrackerMOSSE()
和cv2.TrackerCSRT()
- 光流:
cv2.calcOpticalFlowFarneback()
和cv2.calcOpticalFlowPyrLK()
机器学习
- 训练数据准备:
cv2.ml.TrainData()
- 分类:
cv2.ml.SVM()
、cv2.ml.DecisionTree()
和cv2.ml.RandomForest()
- 回归:
cv2.ml.LinearRegression()
和cv2.ml.LogisticRegression()
高级主题
- 立体视觉:
cv2.StereoBM()
和cv2.StereoSGBM()
- 图像分割:
cv2.watershed()
、cv2.grabCut()
和cv2.kmeans()
- 深度学习: 使用 TensorFlow 或 PyTorch 集成 OpenCV