Карта оттенков изображения RGB в opencv - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу проверить карту оттенков изображения RGB, чтобы установить пороговое значение для цветовой сегментации.Ниже приведены мои коды и результаты:

    Mat img = imread("circles.jpg");
    if(!img.empty())
    {
        namedWindow("Image");
        imshow("Image",img);

        Mat img_hsv(img.size(),CV_8UC3);
        cvtColor(img,img_hsv,COLOR_BGR2HSV);
        Mat hue(img_hsv.size(),CV_8UC1);
        Mat sat(img_hsv.size(),CV_8UC1);
        Mat val(img_hsv.size(),CV_8UC1);
        Mat out[] = {hue, sat, val};
        split(img_hsv,out);

        namedWindow("Hue");
        imshow("Hue",hue);

        waitKey();
    }

enter image description here

Из полученной карты оттенков я не вижу, почему верхний левый красный круг кажетсятакой яркий, а нижний красный такой темный?В этом случае, как сегментировать красные круги?Необработанное изображение круга доступно по адресу circle.jpg

1 Ответ

2 голосов
/ 29 апреля 2019

Используя онлайн-палитру , вы можете видеть, что верхний кружок имеет оттенок около 350, а нижний кружок имеет оттенок около 10 градусов.Это происходит потому, что красный цвет находится на границах круга оттенка:

enter image description here

Если вы хотите сегментировать красные, вы должны использовать два порога,поскольку красные находятся как в нижней, так и в верхней части спектра оттенков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...