人工智能之视觉领域 计算机视觉 第一章 基础概念

人工智能之视觉领域 计算机视觉

第一章 基础概念


文章目录

  • [人工智能之视觉领域 计算机视觉](#人工智能之视觉领域 计算机视觉)
  • [前言:OpenCV 是什么?能做什么?](#前言:OpenCV 是什么?能做什么?)
    • [1. 通俗理解:OpenCV 是图像与视频的「瑞士军刀」](#1. 通俗理解:OpenCV 是图像与视频的「瑞士军刀」)
    • [2. OpenCV 能做什么?------典型应用场景](#2. OpenCV 能做什么?——典型应用场景)
    • [3. OpenCV 的核心功能模块(简要)](#3. OpenCV 的核心功能模块(简要))
    • [4. OpenCV 的工作流程(Mermaid 流程图)](#4. OpenCV 的工作流程(Mermaid 流程图))
    • [5. 快速上手:5 行代码体验 OpenCV](#5. 快速上手:5 行代码体验 OpenCV)
      • [安装 OpenCV(Python)](#安装 OpenCV(Python))
      • [示例 1:读取并显示一张图片](#示例 1:读取并显示一张图片)
      • [示例 2:实时摄像头人脸检测(使用 Haar 级联)](#示例 2:实时摄像头人脸检测(使用 Haar 级联))
    • [6. 学习 OpenCV 的正确姿势](#6. 学习 OpenCV 的正确姿势)
    • [7. 常见误区提醒](#7. 常见误区提醒)
    • 总结
  • 资料关注

前言:OpenCV 是什么?能做什么?

1. 通俗理解:OpenCV 是图像与视频的「瑞士军刀」

OpenCV(Open Source Computer Vision Library) 是一个开源的、跨平台的计算机视觉和机器学习软件库。你可以把它想象成一个装满了各种"图像处理工具"的百宝箱------就像你家厨房里的多功能料理机,切菜、榨汁、搅拌样样精通。

一句话总结

OpenCV 就是专门用来让计算机"看懂"图像和视频的工具包。

它最初由 Intel 开发,如今由社区维护,支持 C++、Python、Java 等多种语言,其中 Python 接口最流行,因为写起来简单、调试方便。


2. OpenCV 能做什么?------典型应用场景

应用领域 具体例子 OpenCV 的作用
人脸识别 手机解锁、门禁系统 检测人脸位置、提取特征、比对身份
美颜滤镜 抖音/Instagram 滤镜 皮肤平滑、磨皮、大眼、瘦脸、背景虚化
}
视频监控 商场/小区安防 运动目标检测、异常行为识别、人数统计
自动驾驶 车道线识别、行人检测 实时分析摄像头画面,辅助决策
医学影像 X光/CT 图像分析 增强对比度、分割病灶区域
AR/VR 虚拟试衣、手势交互 特征点跟踪、姿态估计
工业质检 产品缺陷检测 图像二值化、边缘检测、模板匹配

💡 关键能力

OpenCV 能完成从"读取一张图"到"理解图中内容"的全链条操作。


3. OpenCV 的核心功能模块(简要)

  • 图像 I/O:读取、保存、显示图像/视频
  • 图像处理:灰度化、滤波、边缘检测、形态学操作
  • 特征检测:角点、SIFT、ORB、轮廓提取
  • 目标检测:Haar级联、HOG + SVM、DNN(深度学习)
  • 相机校正 & 3D重建:立体视觉、位姿估计
  • 机器学习:KNN、SVM、聚类(虽不如 scikit-learn 强,但集成方便)

4. OpenCV 的工作流程(Mermaid 流程图)

灰度化/去噪/缩放
边缘/轮廓/关键点
分类/检测/跟踪
输入: 图像/视频
预处理
特征提取
分析与识别
输出结果
显示/保存/控制指令

这个流程几乎适用于所有计算机视觉任务:

  • 美颜:输入 → 人脸检测 → 皮肤区域分割 → 滤波平滑 → 输出
  • 车道线检测:输入 → 边缘检测 → 霍夫变换找直线 → 输出车道线

5. 快速上手:5 行代码体验 OpenCV

安装 OpenCV(Python)

bash 复制代码
pip install opencv-python

示例 1:读取并显示一张图片

python 复制代码
import cv2

# 1. 读取图像(BGR格式)
img = cv2.imread('photo.jpg')

# 2. 显示图像(窗口名 + 图像变量)
cv2.imshow('My Photo', img)

# 3. 等待按键(0表示无限等待)
cv2.waitKey(0)

# 4. 关闭所有窗口
cv2.destroyAllWindows()

示例 2:实时摄像头人脸检测(使用 Haar 级联)

python 复制代码
import cv2

# 加载预训练的人脸检测模型
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

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

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # 转为灰度图(加速检测)
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
    # 检测人脸
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

    # 在原图上画矩形框
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)

    # 显示结果
    cv2.imshow('Face Detection', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

🔍 说明
cv2.data.haarcascades 是 OpenCV 内置的预训练模型路径,无需额外下载。


6. 学习 OpenCV 的正确姿势

学习目标明确:

  • ✅ 能用 OpenCV 读写图像/视频
  • ✅ 掌握常用图像处理操作(滤波、边缘、二值化)
  • ✅ 会用经典算法做目标检测(如人脸、轮廓)
  • ✅ 能结合深度学习模型(如 YOLO)做高级任务

学习路径建议:

  1. 基础操作:图像 I/O、色彩空间转换、几何变换
  2. 图像增强:滤波(高斯、中值)、直方图均衡化
  3. 特征提取:边缘(Canny)、轮廓(findContours)、角点(Harris)
  4. 目标检测:模板匹配、Haar、HOG
  5. 进阶应用:摄像头标定、光流、DNN推理

7. 常见误区提醒

  • ❌ "OpenCV = 深度学习" → 不对!OpenCV 包含传统 CV 方法,也支持调用 DNN 模型,但本身不是深度学习框架。
  • ❌ "颜色顺序是 RGB" → 错!OpenCV 默认使用 BGR 顺序,与 matplotlib(RGB)不同,混用需转换。
  • 最佳实践:用 Jupyter Notebook + matplotlib 显示图像更直观(避免 cv2.imshow 在非 GUI 环境报错)。
python 复制代码
# 在 Jupyter 中友好显示
import cv2
import matplotlib.pyplot as plt

img = cv2.imread('photo.jpg')
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 转为 RGB
plt.imshow(img_rgb)
plt.axis('off')
plt.show()

总结

OpenCV 是计算机视觉的基石工具

它不神秘,不复杂,只要你愿意动手写几行代码,就能让计算机"看见"世界。

从自拍美颜到无人驾驶,背后都有 OpenCV 的身影。


资料关注

公众号:咚咚王

gitee:https://gitee.com/wy18585051844/ai_learning

《Python编程:从入门到实践》

《利用Python进行数据分析》

《算法导论中文第三版》

《概率论与数理统计(第四版) (盛骤) 》

《程序员的数学》

《线性代数应该这样学第3版》

《微积分和数学分析引论》

《(西瓜书)周志华-机器学习》

《TensorFlow机器学习实战指南》

《Sklearn与TensorFlow机器学习实用指南》

《模式识别(第四版)》

《深度学习 deep learning》伊恩·古德费洛著 花书

《Python深度学习第二版(中文版)【纯文本】 (登封大数据 (Francois Choliet)) (Z-Library)》

《深入浅出神经网络与深度学习+(迈克尔·尼尔森(Michael+Nielsen)》

《自然语言处理综论 第2版》

《Natural-Language-Processing-with-PyTorch》

《计算机视觉-算法与应用(中文版)》

《Learning OpenCV 4》

《AIGC:智能创作时代》杜雨+&+张孜铭

《AIGC原理与实践:零基础学大语言模型、扩散模型和多模态模型》

《从零构建大语言模型(中文版)》

《实战AI大模型》

《AI 3.0》

相关推荐
九.九10 小时前
ops-transformer:AI 处理器上的高性能 Transformer 算子库
人工智能·深度学习·transformer
春日见10 小时前
拉取与合并:如何让个人分支既包含你昨天的修改,也包含 develop 最新更新
大数据·人工智能·深度学习·elasticsearch·搜索引擎
恋猫de小郭10 小时前
AI 在提高你工作效率的同时,也一直在增加你的疲惫和焦虑
前端·人工智能·ai编程
deephub11 小时前
Agent Lightning:微软开源的框架无关 Agent 训练方案,LangChain/AutoGen 都能用
人工智能·microsoft·langchain·大语言模型·agent·强化学习
大模型RAG和Agent技术实践11 小时前
从零构建本地AI合同审查系统:架构设计与流式交互实战(完整源代码)
人工智能·交互·智能合同审核
老邋遢11 小时前
第三章-AI知识扫盲看这一篇就够了
人工智能
互联网江湖11 小时前
Seedance2.0炸场:长短视频们“修坝”十年,不如AI放水一天?
人工智能
PythonPioneer11 小时前
在AI技术迅猛发展的今天,传统职业该如何“踏浪前行”?
人工智能
冬奇Lab12 小时前
一天一个开源项目(第20篇):NanoBot - 轻量级AI Agent框架,极简高效的智能体构建工具
人工智能·开源·agent
阿里巴巴淘系技术团队官网博客12 小时前
设计模式Trustworthy Generation:提升RAG信赖度
人工智能·设计模式