接下来了解更多关于轮廓的函数。
轮廓的更多函数
前面我们学习了轮廓的凸包,对象上的人设凹陷都被称为凸缺陷。opencv里的convexityDefects()函数可以找到凸缺陷。
cv2.convexityDefects(contour, convexhull, convexityDefects=None)
第一个参数是轮廓,第二个参数是凸包上对应轮廓的点。函数会返回一个数组,每一行包含的值是【起点,终点,最远点,到最远点的近似距离】。下面的例子中起点终点用一根红线连接。
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread('C:/Users/dell/Desktop/u12.jpg')
imgray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh=cv2.threshold(imgray,127,255,0)
image,coutours,hierarchy=cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cnt=coutours[1]
hull=cv2.co