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

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

一、代码

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. 画框逻辑

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

相关推荐
ZhengEnCi5 分钟前
09bac-斯坦福CS336作业一-实现训练损失计算
人工智能
冬奇Lab25 分钟前
Skill 系列(01):Skill 评测体系——如何量化一个 AI Skill 的质量
人工智能
兵慌码乱2 小时前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析
python·opencv·计算机视觉·人机交互·手势识别·mediapipe·pyside2
IT_陈寒3 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
用户3521802454755 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
米小虾5 小时前
手把手教你搭建第一个生产级AI Agent:从选型到实战的完整指南
人工智能·agent
任沫5 小时前
Agent之Function Call
javascript·人工智能·go
米小虾6 小时前
2026年AI Agent全面爆发:从开源生态到企业级应用的进化之路
人工智能·agent
用户6919026813396 小时前
Vibe Coding 开发项目的基本范式
人工智能·设计模式·代码规范
To_OC6 小时前
别再跟 AI 死磕 prompt 了,我写了个 Loop 让它自己改到满意为止
人工智能·aigc·agent