Черно-белый цвет в тестовом окне

Задача простая, закрасить всю картинку белым цветом, кроме, цветового диапазона который мне необходим:

#include <Windows.h>
#include <filesystem>

#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
  //Создаем окно под скролбары
    namedWindow("Control", 0); //create a window called "Control"

    int iLowH = 0;
    int iHighH = 0;

    int iLowS = 0;
    int iHighS = 0;

    int iLowV = 0;
    int iHighV = 0;

    //Create trackbars in "Control" window
    createTrackbar("LowH", "Control", &iLowH, 179); //Hue (0 - 179)
    createTrackbar("HighH", "Control", &iHighH, 179);

    createTrackbar("LowS", "Control", &iLowS, 255); //Saturation (0 - 255)
    createTrackbar("HighS", "Control", &iHighS, 255);

    createTrackbar("LowV", "Control", &iLowV, 255); //Value (0 - 255)
    createTrackbar("HighV", "Control", &iHighV, 255);

//Читаем тестовую картинку
    cv::Mat hsv, mask;
    cv::Mat image = cv::imread("C:\\Users\\Admin\\Desktop\\test.jpg");

    while (true)
    {
        cvtColor(image, hsv, cv::COLOR_BGR2HSV);

        cv::inRange(hsv, Scalar(iLowH, iLowS, iLowV), Scalar(iHighH, iHighS, iHighV), mask);

        image.setTo(cv::Scalar(0, 0, 0), mask);

        cv::imshow("result", mask);

        char key = (char)waitKey(30);
        
        if (key == 'q' || key == 27)
        {
            break;
        }
    }

    return 0;
}

Но, когда я вывожу конечное изображения после манипуляций со скролбарами, в окно выводится черно - белый вариант картинки, какие флаги нужно поставить в функцию cvtColor(image, hsv, cv::COLOR_BGR2HSV);, что картинка была цветная, с полным спектром цветом, которые остались после манипуляций с подбором цветового диапазона?


Ответы (0 шт):