1.1 OpenCV介绍与学习路线
总目录:1.1 OpenCV介绍与学习路线 | 第一章:认识图像与跑通流程
下一节:1.2 图像、像素与坐标 →
1.1 OpenCV介绍与学习路线
OpenCV 的全名是 Open Source Computer Vision Library。它不是“会自动看懂世界的 AI”,更像是一只装满视觉工具的工具箱:从基础的读图、颜色转换、去噪、找边缘、提轮廓、绘图到进阶一些的3d世界的位姿解算、复杂图形的关键点检测……这些工作它都能干。通过合理搭配,这么一套数学工具也能让计算机”看“懂世界。 不过对于一些很复杂图形,如果算力足够,还是建议用一些神经网络,比如使用YOLO。
因此本篇笔记主要介绍基础用法,不过多涉及底层数学原理--> 目标是入门和会用 非常适合入门学习!!!
本篇笔记是以python为接口
import cv2
包名叫 opencv-python,导入时却写 cv2。这个名字是历史遗留,记住就好,不用和它较劲
在开始学习之前,最好需要知道python语法基础,数组的概念,numpy基础用法。
一、通过一个例子快速认识OpenCv流程
先看一个具体任务:从摄像头里找到一个红色圆球并得到它在图中的位置坐标。
摄像头读取画面
↓
转换到适合分颜色的 HSV
↓
按颜色范围生成黑白蒙版(比如在颜色范围内的就是白色)
↓
去掉小噪点、补上小缺口
↓
找到白色区域的轮廓
↓
根据面积、圆度筛选目标
↓
得到圆球中心坐标
OpenCV 主要负责中间这些“把像素一步步变成有用信息”的工作。 之后你就可以用提取出来的信息处理业务逻辑(就是任务代码)了。
二、先把图像看成数组
在 Python 里,OpenCV 图像通常就是 NumPy 数组:
image.shape
# (高度, 宽度, 通道数)
例如 (480, 640, 3) 表示:
- 480 行像素,也就是高度;
- 640 列像素,也就是宽度;
- 每个像素有 3 个颜色通道。
因此“裁剪一块图像”其实就是切数组。详细概念见 1.2 图像、像素与坐标 和 1.5 NumPy与图像数组。
三、一条最常见的视觉流水线
以后看到一段很长的 OpenCV 代码,可以先按下面几类拆开:
| 阶段 | 要回答的问题 | 常见函数 |
|---|---|---|
| 输入 | 图像从哪里来? | imread、VideoCapture、read |
| 预处理 | 怎样让目标更好找? | cvtColor、GaussianBlur、threshold、inRange |
| 结构整理 | 怎样去噪、补洞、连边? | erode、dilate、morphologyEx |
| 特征提取 | 哪些像素组成边缘或物体? | Canny、findContours、approxPolyDP |
| 筛选 | 这是不是我要的目标? | contourArea、arcLength |
| 输出 | 怎样展示或交给控制程序? | rectangle、putText、中心坐标 |
真正写项目时不要把它们糊成一团。建议每个阶段都保留一个能观察的中间结果,例如 mask、edges、morph。
四、系统学习总目录
第一章:认识图像与跑通流程
1.1 OpenCV介绍与学习路线:OpenCV 的定位、视觉流水线与总目录
1.2 图像、像素与坐标:分辨率、通道、BGR 与图像坐标
1.3 读取显示与保存图像:imread、imshow、waitKey、imwrite
1.4 视频与摄像头:VideoCapture、逐帧读取与资源释放
1.5 NumPy与图像数组:形状、切片、掩码与轮廓点格式
第二章:基础图像处理
2.1 颜色空间与通道:BGR、灰度、HSV 与颜色转换
2.2 缩放裁剪与拼接:resize、数组裁剪、横竖拼接
2.3 绘制图形与文字:线、矩形、圆、轮廓和文字
2.4 滤波与降噪:均值、高斯、中值和双边滤波
2.5 二值化与阈值:固定阈值、自适应阈值与 Otsu
2.6 形态学处理:腐蚀、膨胀、开运算与闭运算
2.7 HSV颜色检测:inRange、滑动条与颜色蒙版
第三章:边缘、轮廓与几何
3.1 Canny边缘检测:梯度、双阈值和边缘连接
3.2 查找与绘制轮廓:findContours、drawContours
3.3 轮廓层级:父子轮廓与四种检索模式
3.4 轮廓几何特征:面积、周长、质心、圆度与外接框
3.5 多边形逼近与形状识别:角点简化与基本形状判断
3.6 外接矩形与透视变换:旋转矩形、点排序和鸟瞰图
3.7 凸包凸缺陷与Solidity:凹陷结构与形状饱满程度
第四章:把知识连成项目
4.1 完整的形状检测流程:从原图到形状名称的可运行示例
4.2 摄像头检测与调参:实时循环、曝光、性能和排错
4.3 视觉控制中的坐标与滤波:像素误差、坐标系与一阶低通
五、学习时怎样使用这些笔记
建议顺着编号读,但不要只读不跑:
- 先复制最小示例,确认代码能执行;
- 显示每个中间图,不要只看最终框;
- 改一个参数,观察一个变化;
- 把函数参数换成自己的话解释;
- 最后再进入 完整项目。
六、参考
下一节:1.2 图像、像素与坐标 →
留言区
不收集任何个人信息;昵称只绑定浏览器里的随机 Cookie。