opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
下面是详细的讲解“opencv python 图像轮廓/检测轮廓/绘制轮廓的方法”的完整攻略。
检测轮廓
检测图像轮廓的方法主要是通过cv2.findContours函数实现,该函数接收三个参数,分别是输入图像、轮廓检索方式以及轮廓近似方法。返回值是包含检测到的轮廓信息的列表。以下是检测轮廓的基本步骤:
- 读入一张图片并转化为灰度图。
- 进行二值化处理。
- 进行轮廓检测。
其中,轮廓检测的方式有以下几种:
- RETR_EXTERNAL 只检测最外层轮廓
- RETR_LIST 检测所有轮廓,但不建立轮廓层次结构
- RETR_CCOMP 检测所有轮廓,并将轮廓分层,每个轮廓存储到相应的层数中
- RETR_TREE 检测所有轮廓,并重建轮廓之间的层次关系
轮廓检测的近似方法有以下几种:
- CHAIN_APPROX_NONE 以折线段方式存储轮廓,包括所有的轮廓点
- CHAIN_APPROX_SIMPLE 压缩水平、垂直和斜率等方向的冗余点,只保留该方向的重点
绘制轮廓
绘制轮廓的方法是通过cv2.drawContours函数实现,该函数接收三个参数,分别是绘制轮廓的图像、要绘制的轮廓信息以及绘制的轮廓索引。以下是绘制轮廓的基本步骤:
- 在检测轮廓的基础上,创建一个输出图像
- 绘制轮廓
注意,第四个参数指定绘制轮廓的颜色,其中(0,255,0)代表纯绿色,(0,0,255)代表纯蓝色,(255,0,0)代表纯红色,(255,255,255)代表白色,(0,0,0)代表黑色等。
示例说明
以下是两个例子,展示如何检测和绘制轮廓。
示例一:检测并绘制单个轮廓
示例二:检测并绘制所有轮廓
以上两个示例演示了如何检测并绘制单个轮廓和所有轮廓。通过了解其中的基本步骤,可以根据实际需求自由调整参数和细节,实现更加复杂的图像轮廓检测和绘制操作。