Печать процентного содержания цвета на изображении в OpenCV Python - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть сценарий python, который принимает изображение и выводит процентное содержание зеленого и коричневого цветов в этом изображении. Мне нужна помощь, чтобы понять приведенную ниже строку, потому что я хочу реализовать этот код на другом языке.

    img = cv2.imread('__FILE_LOCATION__')
    grid_HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

    lower_green = np.array([25,52,72])
    upper_green = np.array([102,255,255])

    lower_brown = np.array([10, 100, 20])
    upper_brown = np.array([20, 255, 200])

    mask= cv2.inRange(grid_HSV, lower_green, upper_green)
    brown_mask= cv2.inRange(grid_HSV, lower_brown, upper_brown)

    print(str(round(((mask>0).mean())*100,3)))                 #<- This line
    print(str(round(((brown_mask>0).mean())*100,3)))           #<- and This line

    # what is "mask>0" part, ".mean()" part and why multiply with 100

Ниже приведена реализация Java моего кода python. Просто отсутствует часть расчета процента. Мне нужна помощь в завершении этого.

    oImage = imread(pathOfFile);
    hsvImage = new Mat();
    color_range1 = new Mat();
    color_range2 = new Mat();

    Imgproc.cvtColor(oImage, hsvImage, Imgproc.COLOR_BGR2HSV);
    Core.inRange(hsvImage, new Scalar(25,52,72), new Scalar(102,255,255), color_range1); // Green
    Core.inRange(hsvImage, new Scalar(10, 100, 20), new Scalar(20, 255, 200), color_range2); // Brown



    // Finding percentage of green and brown colors from above masks.



    color_range1.release();
    color_range2.release();
    hsvImage.release();
    oImage.release();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...