对与轮廓检测就是cv2.threshold,cv2.findContours,cv2.cvtColor,cv2.drawContours这几个函数的调用。下面就是代码及对这几个函数的解释:
import cv2
import numpy as np
img = np.zeros((200,200),dtype = np.uint8 )#构造一个两百行两两百列的矩阵
img[50:150,50:150]= 225 #把50到150行和50到150列赋值为225
# cv2.imshow('img',img)
# cv2.waitKey()
ret ,thresh = cv2.threshold('img',127,255,0)#选取一个全局阈值,然后就把整幅图像分成了非黑即白的二值图像
'''
cv2.threshold() 函数解释
这个函数有四个参数,第一个原图像,第二个进行分类的阈值,第三个是高于(低于)阈值时赋予的新值,第四个是一个方法选择参数,常用的有:
• cv2.THRESH_BINARY(黑白二值)
• cv2.THRESH_BINARY_INV(黑白二值反转)
• cv2.THRESH_TRUNC (得到的图像为多像素值)
• cv2.THRESH_TOZERO
• cv2.THRESH_TOZERO_INV
该函数有两个返回值,第一个retVal(得到的阈值值(在后面一个方法中会用到)),第二个就是阈值化后的图像。
'''
image,contours ,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)