图像轮廓检测:
返回值有两个(部分是返回三个,多出一个返回原图像排在第一个返回值),Coutours(轮廓本身)和hierarchy(每条轮廓对应的属性):
cv2.findContours(图像对象,轮廓检测模式,轮廓逼近方法)
图像对象:只能是二值图像(黑白),不是灰度图.
轮廓检测模式:
RETR_EXTERNAL:只检索最外面的轮廓.
RETR_LIST:检索所有轮廓,将其保存到一条链表中.
RETR_CCOMP:检索所有轮廓,将其组织成两层,顶层是各部分的外部边界,第二层是空洞的边界.
(常用)RETR_TREE:检索所有的轮廓,并重构嵌套轮廓的整个层次.
轮廓逼近方法:
CHAIN_APPROX_SIMPLE:压缩水平的垂直的和斜的部分,也就是说函数只保留他们的终点部分.
CHAIN_APPROX_NONE:以Freeman链码的方式输出轮廓,所有其他方法输出多边形(顶点的序列)
绘制图像轮廓:
绘制后会改变原图,可以使用.copy()函数来进行绘制从而不影响原图:
cv2.drawContours(图像对象.copy(),Contours,轮廓索引,颜色,线粗细,线类型)
Contours:cv2.findContours的返回值.
轮廓索引:若为负数则为选择全部轮廓,即为画出检测到的全部轮廓.
颜色:(B,G,R)格式.