要计算由cv2.findContours函数找到的轮廓面积,你可以使用cv2.contourArea函数。这个函数接受一个轮廓作为输入,并返回该轮廓的面积。以下是一个示例: python # 计算轮廓面积 for contour in contours: area = cv2.contourArea(contour) print(f'Contour area: {area}') ...
contours, hierarchy = cv2.findContours(edged, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) #计算每个轮廓的面积并打印出来 for contour in contours: area = cv2.contourArea(contour) print('Contour area: {}'.format(area)) #将轮廓绘制到原图上 cv2.drawContours(img, contours, -1, (0, 255, 0), ...
p=cv.arcLength(contours[cnt],True) area=cv.contourArea(contours[cnt]) print("周长: %.3f, 面积: %.3f 颜色: %s 形状: %s "%(p,area,color_str,shape_type)) cv.(,.()) return.shapes if__name__=="__main__": src=cv.imread("F:/File_Python/Resources/004.png") ld=ShapeAnalysis()...
#图像的矩 cnt = contours[0] M = cv2.moments(cnt) #print type(M)#图像的矩 #cx = int(M['m10']/M['m00']) #cy = int(M['m01']/M['m00'])#对象重心 area = cv2.contourArea(cnt)#轮廓面积=m00 perimeter = cv2.arcLength(cnt,True)#轮廓周长 epsilon = 0.1*perimeter approx = cv2.ap...
p = cv.arcLength(contours[cnt], True) area = cv.contourArea(contours[cnt]) print("周长: %.3f, 面积: %.3f 颜色: %s 形状: %s "% (p, area, color_str, shape_type)) cv.imshow("Analysis Result", self.draw_text_info(result)) return self.shapes if __name__ == "__main__": sr...
2. 轮廓的周长和面积 使用cv2.findCountor获得的轮廓contours是一个嵌套的类型,即我们可以通过cnt = contours获得第一个物体的轮廓值 代码: 第一步:载入图片,做灰度值和二值化处理,并使用cv2.findCountor找出轮廓值,使用cv2.drawCountors画出第一个图像的轮廓 ...
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)#用红色表示有旋转角度的矩形框架rect =cv2.minAreaRect(cnt) box=cv2.cv.BoxPoints(rect) box=np.int0(box) cv2.drawContours(img, [box], 0, (0, 0,255), 2) cv2.imwrite('contours.png', img) ...
(1)颜色填充时:给其传参数的时候,需要搞一个轮廓的list给他,要不会导致颜色填充失败。 (2)画轮廓线时:就没必要搞list了,直接contours[i]就可以。 python代码: 图片:背景为黑色,有很多白色填充的。 下面代码是去除图片中自定义面积小的轮廓, 将大的轮廓填充为白色。
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHN_APPROX_SIMPLE)# 绘制所有轮廓并填充result = image.copy() cv2.drawContours(result, contours, -1, (0,0,255), -1)# 注意contours需要是list类型 AI代码助手复制代码 示例3:层级控制绘制 ...