计算机视觉第六课:打开摄像头,实时框出物体

打开你电脑的摄像头,画面里所有物体都会实时自动画框,和监控、人脸识别逻辑完全一样!

一、代码

python 复制代码
import cv2
import numpy as np

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

# 无限循环,一帧一帧读取画面
while True:
    # 2. 读取每一帧画面
    success, img = cap.read()
    if not success:
        break

    # 3. 图像处理(灰度 + 模糊 + Canny边缘检测)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    blur = cv2.GaussianBlur(gray, (5, 5), 0)
    canny = cv2.Canny(blur, 50, 150)

    # 4. 寻找轮廓
    contours, _ = cv2.findContours(canny, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

    # 5. 遍历所有物体,实时画框
    for cnt in contours:
        area = cv2.contourArea(cnt)
        # 过滤小噪点,只框大物体
        if area > 500:
            x, y, w, h = cv2.boundingRect(cnt)
            # 画绿色检测框
            cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

    # 显示实时画面
    cv2.imshow("Canny Edge", canny)
    cv2.imshow("Camera Object Detection", img)

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

# 释放摄像头,关闭窗口
cap.release()
cv2.destroyAllWindows()

二、关键代码解释

  1. 打开摄像头
python 复制代码
cap = cv2.VideoCapture(0)
  • 0 = 电脑自带摄像头
  • 如果是外接摄像头,改成 1

2. while True 循环

视频 = 一连串连续的图片(帧) 循环就是每秒读取几十次画面,处理后显示出来。

3. 画框逻辑

和上一课完全一样!只是从 "处理一张图片" 变成了 "处理每一帧画面"。

相关推荐
FL16238631291 小时前
窗户干净脏污分类窗户清洁状态分类数据集3299张2类别已划分训练验证测试集
人工智能·分类·数据挖掘
阿里云大数据AI技术2 小时前
基于阿里云 DataWorks Data Agent 进行大模型热度分析
人工智能·agent·nvidia
碳基硅坊2 小时前
Qwen3.5-9B在安全生产安全帽检测中的应用
人工智能·安全·安全帽检测·qwen3.5-9b
云烟成雨TD2 小时前
Spring AI Alibaba 1.x 系列【66】Graph 长期记忆
java·人工智能·spring
春日见2 小时前
五分钟入门 强化学习---Q-Learning算法与实现
人工智能·python·深度学习·算法·机器学习·计算机视觉
卡次卡次12 小时前
vibecoding起步之Claude Code的skills是什么,里面有什么文件,以ppt的一个skills举例
人工智能·opencv·powerpoint
AI服务老曹2 小时前
解耦异构算力:基于 Docker 与 GB28181/RTSP 的边缘计算 AI 视频管理平台架构设计与源码交付实践
人工智能·docker·边缘计算
小饕2 小时前
RAG 实战:文本切块(Text Chunking)从入门到精通
人工智能
多年小白2 小时前
【周末消息】2026年5月30日-6月1日
大数据·人工智能·深度学习·机器学习·金融