小编Mus*_*sal的帖子

求叶子的周长

这是一片叶子

我想找到它的外围的长度,即它使用 openCV 和 Python 的周长。我尝试编写代码,但没有给出所需的结果。我必须为每个示例重置阈值,而且它没有给出封闭的轮廓。我希望它是一个通用代码来处理所有这些叶子。请在这里帮助我:

import cv2
#reading the image 
 col = cv2.imread("leaf2.jpg")
 width,height,channels = col.shape
 col=cv2.resize(col,(width,height),interpolation=cv2.INTER_CUBIC)
 image=cv2.pyrMeanShiftFiltering(col,10,100,3)

 edged = cv2.Canny(image, 0,10)
 kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7, 7))
 closed = cv2.morphologyEx(edged, cv2.MORPH_CLOSE, kernel)
 #finding_contours 
 image, contours, hierarchy = cv2.findContours(closed, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

 perimeter=0

 for c in contours:
     peri = cv2.arcLength(c, True)
     approx = cv2.approxPolyDP(c, 0.02 * peri, True)
     cv2.drawContours(image, [approx], -1, (0, 255, 0), 2)
     perimeter = perimeter+cv2.arcLength(c,True)
 print(perimeter)   
 cv2.imshow("Output", image)
 cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing canny-operator opencv-contour

1
推荐指数
1
解决办法
1561
查看次数