序
上一篇文章我们讲了凸包的基本知识,为了巩固和创新知识。我们在复习的同时,来学习新的凸缺陷。凸缺陷知识在凸包的基础上,进一步对图片进行处理。
概念
凸包与轮廓之间的部分,称为凸缺陷。在opencv中凸缺陷的语法格式为:
convexityDefects =cv2.convexityDefects (contour,convexhull)
了解了基本的语法格式和上次课的基本知识,让我们直接进入实战。
题1
还是这张老图片,让我们对图片进行这张图进行凸缺陷的操作。
代码展示
import cv2
import numpy as np
img =cv2.imread("contours2.png")#读图
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#转化为灰度图像
ret,binary =cv2.threshold(gray,32,255,0)#阈值处理
contours,h =cv2.findContours(binary,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)#查找轮廓
hull =cv2.convexHull(contours[0],returnPoints=False)#获取凸包
defects =cv2.convexityDefects(contours[0],hull)
for i in range(defects.shape[