OpenCV 简介

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,支持多种编程语言(如C++、Python)。它广泛应用于图像处理、物体识别、人脸检测等领域。


安装与配置

Python环境安装
通过pip安装OpenCV的Python版本(opencv-python):

pip install opencv-python

如需额外模块(如contrib包):

pip install opencv-contrib-python

C++环境配置

  1. 下载OpenCV源码并编译(CMake)。
  2. 配置项目路径(如Visual Studio的包含目录和库目录)。

基础图像操作

读取与显示图像

import cv2
img = cv2.imread("image.jpg")  # 读取图像
cv2.imshow("Window", img)      # 显示图像
cv2.waitKey(0)                 # 等待按键

灰度转换

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

保存图像

cv2.imwrite("output.jpg", gray_img)


图像处理技术

边缘检测(Canny)

edges = cv2.Canny(img, threshold1=100, threshold2=200)

图像滤波(高斯模糊)

blurred = cv2.GaussianBlur(img, (5, 5), 0)

形态学操作(腐蚀与膨胀)

kernel = np.ones((3, 3), np.uint8)
eroded = cv2.erode(img, kernel, iterations=1)
dilated = cv2.dilate(img, kernel, iterations=1)


计算机视觉应用

人脸检测(Haar级联)

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
faces = face_cascade.detectMultiScale(gray_img, scaleFactor=1.1, minNeighbors=5)
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

特征匹配(SIFT/SURF)

sift = cv2.SIFT_create()
keypoints, descriptors = sift.detectAndCompute(img, None)

目标跟踪(KCF算法)

tracker = cv2.TrackerKCF_create()
bbox = (x, y, w, h)  # 初始边界框
tracker.init(img, bbox)
success, bbox = tracker.update(img)


进阶学习资源

  1. 官方文档:OpenCV官网提供详细的教程和API参考。
  2. 书籍推荐:《Learning OpenCV 4》适合系统学习。
  3. 实战项目:尝试车牌识别、AR应用等综合案例。

通过以上内容,可逐步掌握OpenCV的核心功能,并根据实际需求扩展应用场景。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐