python中的cv2库

lemon Lv4

1. 核心功能

  • 计算机视觉:支持图像处理、视频分析、特征提取、目标检测等任务。
  • 跨平台:可在 Windows、Linux、macOS 等系统上运行。
  • 算法丰富:提供 2500+ 优化算法,涵盖经典和先进的计算机视觉技术。

2. 常用类与方法

  • 图像读取与显示

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import cv2

    # 读取图像(支持 JPG、PNG 等格式)
    img = cv2.imread("image.jpg", cv2.IMREAD_COLOR) # 彩色模式(默认)
    # img = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE) # 灰度模式

    # 显示图像
    cv2.imshow("Image Window", img)
    cv2.waitKey(0) # 等待按键(0 表示无限等待)
    cv2.destroyAllWindows() # 关闭所有窗口
  • 图像处理

    1
    2
    3
    4
    5
    6
    7
    8
    # 颜色空间转换(BGR 转灰度)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # 调整图像大小
    resized = cv2.resize(img, (800, 600))

    # 边缘检测(Canny 算法)
    edges = cv2.Canny(gray, 100, 200)
  • 特征检测与匹配

    1
    2
    3
    4
    5
    6
    7
    # SIFT 特征检测
    sift = cv2.SIFT_create()
    keypoints, descriptors = sift.detectAndCompute(img, None)

    # 特征匹配(Brute-Force)
    bf = cv2.BFMatcher()
    matches = bf.match(descriptors1, descriptors2)
  • 视频处理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 打开视频文件或摄像头
    cap = cv2.VideoCapture("video.mp4") # 或 0 表示默认摄像头

    while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
    break
    cv2.imshow("Video", frame)
    if cv2.waitKey(25) & 0xFF == ord("q"):
    break

    cap.release() # 释放资源

3. 使用示例

  • 读取并显示图像

    1
    2
    3
    4
    img = cv2.imread("image.jpg")
    cv2.imshow("Image", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
  • 灰度转换与边缘检测

    1
    2
    3
    4
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    edges = cv2.Canny(gray, 100, 200)
    cv2.imshow("Edges", edges)
    cv2.waitKey(0)
  • 人脸检测(需 Haar 级联文件):

    1
    2
    3
    4
    5
    6
    face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
    faces = face_cascade.detectMultiScale(gray, 1.1, 4)
    for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
    cv2.imshow("Faces", img)
    cv2.waitKey(0)

4. 注意事项

  • 安装依赖:需先安装 OpenCV 库,使用命令 pip install opencv-python
  • 颜色空间:OpenCV 默认使用 BGR 格式,与其他库(如 PIL、Matplotlib)交互时需转换。
  • 图像路径:确保路径正确,避免读取失败(返回 None)。
  • 资源释放:处理视频或摄像头时,及时调用 release() 释放资源。
  • 异常处理:检查图像是否加载成功,避免后续操作报错。

总结

  • 读取图像cv2.imread(),支持多种格式和读取模式。
  • 处理图像:使用 cvtColorresizeCanny 等函数进行颜色转换、缩放、边缘检测。
  • 特征检测:通过 SIFT、SURF 等算法提取关键点,再进行特征匹配。
  • 视频处理:用 VideoCapture 读取视频,逐帧处理并分析。
  • 标题: python中的cv2库
  • 作者: lemon
  • 创建于 : 2025-04-12 22:06:39
  • 更新于 : 2025-04-12 22:10:51
  • 链接: https://lemon2003.github.io/post/20250412220639.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论