如何分割彩色线条?

How can I segment a colored line?

我正在尝试分割这张图片的蓝线和黑线。

original image

但我无法单独分割它们(使用 Java 中的 OpenCV 库),结果是:

binarized image

我试过这个功能: mgproc.threshold(imgGray, imgThreshold, 0, 255, Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU);

How can I segment the blue and black lines separately using the OpenCV library?

如果给定了线条的颜色,您可以定义颜色范围并过滤图像。

这是一个示例代码(不是我的;取自该网站:https://pythonprogramming.net/color-filter-python-opencv-tutorial/

lower_red = np.array([30,150,50])
upper_red = np.array([255,255,180])

mask = cv2.inRange(hsv, lower_red, upper_red)
res = cv2.bitwise_and(frame,frame, mask= mask)

cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)

尝试使用 adaptiveThreshold,并根据您的需要进行调整。

 // Adaptive Threshold
 Imgproc.adaptiveThreshold(test_image, test_image, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C,
                Imgproc.THRESH_BINARY_INV, 15,2);

查看更多Javaexamples