opencv
1.边缘检测
cv2.Canny(img,min_thresh,max_thresh)
在进行边缘检测时,最好先进行高斯模糊 cv2.GaussianBlur(img,(3,3),0,0)
img 单通道图像
min_thresh 最小阈值
max_thresh最大阈值
返回值为提取边缘后的图片
2.轮廓检测
contours = cv2.findContours(edges_,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
返回值: 为一个个轮廓组成的list ,每个轮廓都由许多点构成
第一个参数
是寻找轮廓的图像;
第二个参数
表示轮廓的检索模式,有四种(本文介绍的都是新的cv2接口):
cv2.RETR_EXTERNAL 表示只检测外轮廓
cv2.RETR_LIST 检测的轮廓不建立等级关系
cv2.RETR_CCOMP 建立两个等级的轮廓,上面的一层为外边界,里面的一层为内孔的边界信息。如果内孔内还有一个连通物体,这个物体的边界也在顶层。
cv2.RETR_TREE 建立一个等级树结构的轮廓。
第三个参数
method为轮廓的近似办法
cv2.CHAIN_APPROX_NONE 存储所有的轮廓点,相邻的两个点的像素位置差不超过1,即max(abs(x1-x2),abs(