有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何分割彩色线?

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

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?


共 (2) 个答案

  1. # 1 楼答案

    尝试使用adaptiveThreshold,并根据需要调整

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

    请参阅更多Java examples

  2. # 2 楼答案

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

    这是一个示例代码(不是我的;取自此网站: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)