cv2.findConturs()cnt,heirarchy = cv2.findContours(edged_img,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) # Finding contours detection
此方法返回两个值。轮廓和层次。Python是所有轮廓的一个列表。每个单独的轮廓是一个由物体边界点的(x,y)坐标组成的数组。在
在您的例子中,它返回相同的两个值,但不同的是,您将它解析为字符串并将其放入单个变量中,这使得它很难理解
d类型
每个ndarray都有一个关联的数据类型(dtype)对象。这个数据类型对象(dtype)通知我们ab
在阵列的布局之外。这意味着它为我们提供了以下信息:数据类型(整数、浮点、Python对象等)
数据大小(字节数)
数据的字节顺序(小端或大端)
如果数据类型是子数组,它的形状和数据类型是什么。在
在您的例子中,它说明了ndarray中的数据是int类型以及数组维度
修复代码
在您的代码中,问题在于以下部分:
^{pr2}$
在这里,您将把findCounturs返回的值解析为str类型。在cnt,heirarchy = cv2.findContours(edged_img,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) # Finding contours detection
编辑:
用于绘图
如果要绘制所有检测到的轮廓,则必须使用cv2.drawContours()方法。在cv2.drawContours(image,contours,-1,(255,0,0),2) # Drawing the detected contours on the image.
它接受5值。它的第一个参数是源图像,第二个参数是应该作为Python列表传递的轮廓,第三个参数是等高线的索引(绘制单个轮廓时很有用)。若要绘制所有轮廓,请传递-1),其余参数为颜色、厚度等
如果您希望看到一个python程序,它可以获取图像并在其上绘制轮廓(信息),那么您可以检查这个开源代码。在