基于Python的opencv学习练习(十二) findContours()轮廓与绘制drawContours()

import cv2
 #加载图像

img=cv2.imread('rectangle.jpg',1)
#将RGB图像转化为灰度图像
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
#将灰度图像二值化
ret,thresh = cv2.threshold(img_gray, 127,255,0)

contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
img = cv2.drawContours(img,contours,-1, (0,0,255),3)
cv2.imshow('img',img)
cv2.waitKey(0)

findContours()第一个是输入图像,第二个是轮廓检索模式,第三个是轮廓近似方法
返回值有两个,第一个是(轮廓的)层析结构。第二个是轮廓。轮廓(第二个返回值)是一个 Python列表,其中存储这图像中的所有轮廓。每一个轮廓都是一个 Numpy 数组,包
含对象边界点(x,y)的坐标。
第三个参数如果被设置为 cv2.CHAIN_APPROX_NONE,所有的边界点
都会被存储。cv2.CHAIN_APPROX_SIMPLE 储存只需要这条直线
的两个端点而已。

函数 cv2.drawContours() 可以被用来绘制轮廓。它可以根据你提供
的边界点绘制任何形状。它的第一个参数是原始图像,第二个参数是轮廓,一
个 Python 列表。第三个参数是轮廓的索引(在绘制独立轮廓是很有用,当设
置为 -1 时绘制所有轮廓)。接下来的参数是轮廓的颜色和厚度等。

你可能感兴趣的:(opencv练习)