在OpenCV里凸包缺陷分析

凸包缺陷分析

凸包与轮廓的任何偏差都可视为凸包缺陷。OpenCV里提供cv.convexityDefects()函数来实现凸包缺陷检测:

hull = cv.convexHull(cnt,returnPoints = False)

defects = cv.convexityDefects(cnt,hull)

在这里参数returnPoints = False是设置为False,就是为了查找凸包缺陷。返回值defects包含每行的值:

 [ start point, end point, farthest point, approximate distance to farthest point ]

接着下来,我们来把这个结果画出来,从开始点到结束点画一条直线,在最远点处画一个圆,前三个参数

返回的值是边缘cnt时的索引值,因此要从cnt列表里取回真实坐标,如下例子:

#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import numpy as np
import cv2
from matplotlib import pyplot as plt

#读取图片
img = cv2.imread('star.png')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #转换为灰度图片
ret,thresh = cv2.threshold(img_gray, 127, 255,0) #阈

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览

应支付9.90元
点击重新获取
扫码支付

支付成功即可阅读