当前位置:首页>python>OpenCV Python 五大经典示例:从入门到实用

OpenCV Python 五大经典示例:从入门到实用

  • 2026-10-11 08:08:33
OpenCV Python 五大经典示例:从入门到实用

这里给你准备了 5 个最经典、最常用、可直接运行的 OpenCV Python 示例,从入门到实用全覆盖,复制就能跑!

需要先安装依赖:

pip install opencv-python numpy

Demo 1:打开摄像头并实时显示(最基础)

功能:打开电脑摄像头,实时显示画面,按 q 退出。

import cv2

# 打开默认摄像头(0 代表第一个摄像头)
cap = cv2.VideoCapture(0)

while True:
    # 读取一帧画面
    ret, frame = cap.read()
    if not ret:
        break

    # 显示画面
    cv2.imshow("Camera", frame)

    # 按 q 退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 释放资源
cap.release()
cv2.destroyAllWindows()

Demo 2:图像灰度化 + 边缘检测(Canny)

功能:把图像转灰度,再做边缘提取。

import cv2

# 读取图片(替换成你的图片路径)
img = cv2.imread("test.jpg")

# 转灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Canny 边缘检测
edges = cv2.Canny(gray, 100, 200)

# 显示结果
cv2.imshow("Original", img)
cv2.imshow("Gray", gray)
cv2.imshow("Edges", edges)

cv2.waitKey(0)
cv2.destroyAllWindows()

Demo 3:人脸检测(使用 Haar 级联)

功能:从图片 / 摄像头中检测人脸并画框。

import cv2

# 加载官方人脸检测器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_default.xml")

# 打开摄像头
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 检测人脸
    faces = face_cascade.detectMultiScale(gray, 1.1, 4)

    # 给每个人脸画框
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

    cv2.imshow("Face Detection", frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Demo 4:颜色追踪(提取指定颜色物体)

功能:实时追踪画面中的蓝色物体,可改成绿色 / 红色。

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # 蓝色范围
    lower_blue = np.array([90, 50, 50])
    upper_blue = np.array([130, 255, 255])

    # 只保留蓝色区域
    mask = cv2.inRange(hsv, lower_blue, upper_blue)
    res = cv2.bitwise_and(frame, frame, mask=mask)

    cv2.imshow("Frame", frame)
    cv2.imshow("Blue Tracking", res)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Demo 5:图像模糊 + 高斯模糊(降噪)

功能:对比原图、均值模糊、高斯模糊的效果。

import cv2

img = cv2.imread("test.jpg")

# 均值模糊
blur = cv2.blur(img, (5, 5))

# 高斯模糊(更自然)
gaussian = cv2.GaussianBlur(img, (5, 5), 0)

cv2.imshow("Original", img)
cv2.imshow("Blur", blur)
cv2.imshow("Gaussian Blur", gaussian)

cv2.waitKey(0)
cv2.destroyAllWindows()

总结

这 5 个 Demo 覆盖了 OpenCV 最核心的常用功能:

  1. 摄像头实时显示

  2. 灰度 + 边缘检测

  3. 人脸检测

  4. 颜色追踪

  5. 图像模糊降噪

(注:文档部分内容可能由 AI 生成)

最新文章

随机文章