什么是图像轮廓?
具有相同颜色(在彩色图片中)或强度(灰度图像要转变为二值化图像)的连续点的曲线
图像轮廓的作用:
1.可以用于图形分析
2.物体的识别与检测
以下这张图中被红色线描出部分都可以称之为轮廓
注意点:
1.为了检测的准确性,需要先对图像进行二值化或Canny操作
2.画轮廓是会修改输入图像,所以为了不避免破坏原来图像可以先进行深拷贝
轮廓查找api :
findContours (img, mode, ApproximationMode…),两个返回值 :contours(查找到所有轮廓的列表,不会绘制出来,只是以列表的形式存储所有轮廓的点)和 hierarchy(层级。表示查找到的所有轮廓有无层级或前后关系)。
mode : 对查找到的轮廓进行如何的组织.可以分级,也可以把所有的轮廓放在一个列表里,或者将轮廓按照树形结构进行存储。
RETR_EXTERNAL = 0, 表示只检测外轮廓(只检测最大的外圈轮廓,一般用于只想检测大物体)
RETR_LIST = 1,检测的轮廓不建立等级关系,所有轮廓放在一个列表中。
RETR_CCOMP = 2,有层级,每层最多两级
RETR_TREE = 3, 按照树形存储轮廓,从右到左一层一层检测(常用)
ApproximationMode:近似查找轮廓。
CHAIN_APPROX_NONE,保存所有轮廓上的点
CHAIN_APPROX_SIMPLE,只保存角点(常用)
绘制轮廓api :
drawContours(img, contours, contoursIdx, color, thickness,…)
img:在哪张图片上进行展示