OpenCV, как создать мат формата HSV - PullRequest
0 голосов
/ 25 июня 2018

Например, я создаю

Mat mat1 = Mat::zeros(Size(100, 100), CV_8UC3);

и заполняю каждый пиксель (0, 255, 255), который должен быть красным в hsv.

Однако, если я покажу imshowэтот мат, он будет напечатан как изображение BGR и не будет красного цвета.

Как сделать так, чтобы формат и формат этого мата hsv (0, 255, 255) приводили к красному цвету?

1 Ответ

0 голосов
/ 25 июня 2018

imshow предполагает, что передаваемое изображение находится в цветовом пространстве BGR. Тем не менее, вы можете создать небольшую функцию, которая будет делать imshow изображений HSV.

void imshowHSV(std::string& name, cv::Mat& image)
{
  cv::Mat hsv;
  cv:cvtColor(image, hsv, CV_HSV2BGR);
  cv::imshow(name, hsv);
}

Но будьте осторожны! это преобразует и создает копию изображения, если вы чрезмерно используете его, у него могут быть некоторые накладные расходы :)

...