这里给你准备了 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 最核心的常用功能:
-
摄像头实时显示
-
灰度 + 边缘检测
-
人脸检测
-
颜色追踪
-
图像模糊降噪
(注:文档部分内容可能由 AI 生成)