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 时绘制所有轮廓)。接下来的参数是轮廓的颜色和厚度等。
版权声明:本文为weixin_43474255原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。