计算机视觉第四课:寻找轮廓(自动框出所有物体)

先上代码

python 复制代码
import cv2
import numpy as np

# 1. 读取图片
img = cv2.imread("test.jpg")

# 2. 预处理:灰度 + 模糊(必须做,不然轮廓很乱)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5,5), 0)

# 3. Canny边缘检测
canny = cv2.Canny(blur, 50, 150)

# 4. 寻找轮廓(核心!)
contours, hierarchy = cv2.findContours(
    canny,                # 边缘图
    cv2.RETR_EXTERNAL,    # 只找最外层轮廓
    cv2.CHAIN_APPROX_SIMPLE # 简化轮廓点(提速)
)

# 打印找到几个物体
print(f"找到 {len(contours)} 个物体轮廓!")

# 5. 把所有轮廓画出来(红色,粗细2)
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)

# 6. 显示结果
cv2.imshow("Canny Edge", canny)
cv2.imshow("Detected Contours", img)

cv2.waitKey(0)
cv2.destroyAllWindows()
  1. 寻找轮廓

cv2.findContours(边缘图, 模式, 方法)

  1. 画轮廓

cv2.drawContours(原图, 轮廓列表, 画第几个, 颜色, 粗细)

-1 :画所有轮廓

  1. 运行效果
相关推荐
方方洛6 分钟前
ai-agent教程-18-附录E-推荐阅读与资源
人工智能·llm·agent
const_qiu8 分钟前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
石狮松松17 分钟前
第 05 章 你的第一行"AI"代码:拟合一条直线
人工智能
用户3600555790018 分钟前
Kestrel_VLLM - 14 · router 两个方向判否,与 decode 的真瓶颈
人工智能
狒狒AI20 分钟前
Remotion / GSAP+Three / HyperFrames / Skia 四栈实测:代码渲染知识视频的选栈方法(附开源技能)
前端·人工智能·aigc
自养Agent25 分钟前
Agent Harness 从用到会造:报错的那层,往往不是坏掉的那层
人工智能
RockChinQ26 分钟前
一个 Telegram 群,三条事件路由:欢迎、群规问答与群管理各归一个 Agent
人工智能
果霸大叔28 分钟前
从根上吃透AI Agent:Agent拆解系列之DeerFlow2.0深度拆解
人工智能
2025的限定小孙29 分钟前
AI自己写的SQL自己跑?把执行权从模型手里拿走的三层闸
人工智能
用户4270192301230 分钟前
排障实录 :OpenClaw 升级失败三次,我是怎么把系统救回来的
人工智能