首页 > 解决方案 > 如何在二进制分割图像中分割连接和重叠的对象?

问题描述

我有一个任务,我必须分割图像中存在的所有柠檬并计算它们,我已经使用 OpenCV 的 inRange 方法成功分割了图像中的所有柠檬,但是图像中有一堆柠檬它们是重叠的,所以在分段掩码中,所有柠檬都相互连接。我尝试腐蚀蒙版,但结果图像中的一些斑点完全消失了。这是我使用的代码,原始图像,分段蒙版和侵蚀蒙版。有什么办法可以分割所有连接的柠檬并计算它们吗?任何帮助将不胜感激。

img = cv2.imread('lemon1.jpg')

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

lower_green = np.array([20,50,50])
upper_green = np.array([80,255,255])

mask = cv2.inRange(hsv, lower_green, upper_green)

kernel = np.ones((5,5), np.uint8)
eroded = cv2.erode(mask, kernel, iterations=2)

原始图像 分段掩码 侵蚀面具

标签: opencvimage-processingimage-segmentation

解决方案


推荐阅读