OpenCV如何创建HSV格式垫

时间:2018-06-25 05:03:54

标签: c++ opencv rgb hsv opencv3.1

例如,我创建

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

并用(0,255,255)填充每个像素,该像素在hsv中应该是红色的。

但是,如果我显示此垫子,它将被打印为BGR图像,而不是红色。

如何使这种Mat hsv格式和设置(0、255、255)显示为红色?

1 个答案:

答案 0 :(得分:0)

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);
}

但是要当心!这将转换并创建图像的副本,如果您过度使用它,则可能会有相当大的开销:)