例如,我创建
Mat mat1 = Mat::zeros(Size(100, 100), CV_8UC3);
并用(0,255,255)填充每个像素,该像素在hsv中应该是红色的。
但是,如果我显示此垫子,它将被打印为BGR图像,而不是红色。
如何使这种Mat hsv格式和设置(0、255、255)显示为红色?
答案 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);
}
但是要当心!这将转换并创建图像的副本,如果您过度使用它,则可能会有相当大的开销:)