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

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

一、代码

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

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

相关推荐
数据智研4 分钟前
【数据分享】300个城市-5G试点城市DID数据(2014-2025)
大数据·运维·人工智能·信息可视化·数据分析
一水鉴天5 分钟前
词、术语、概念:从特征集收束到统一拓扑变换的升格与降格模型 20260915(豆包)
开发语言·人工智能
honsor5 分钟前
工业级网口温湿度变送器 ModbusTCP 机房动环环境监测终端
运维·网络·人工智能·物联网·安全·云计算·智能温湿度监测系统
benbenAItalk12 分钟前
真人克隆数字人的素材与成品视频生成:还原度和批量稳定性怎么控?
人工智能·科技·音视频
nanawinona13 分钟前
搜索“2026年量化开发”时,先看规则是否足够清楚
人工智能·python
johnsong18 分钟前
GPT-6 Astra 的能力数字与对齐声明:哪些能信
人工智能·语言模型
qq_2147826120 分钟前
再见Visio,再见draw.io,又一个画图Skill
人工智能·机器学习·draw.io
倔强的石头10620 分钟前
【深度学习】词嵌入技术_从Word2Vec到现代Embedding
人工智能·深度学习·机器学习
明月_清风28 分钟前
用自然语言控制 Blender:开源项目 Blender MCP 深度介绍
人工智能·后端