OpenCV:将标量转换为不同的色彩空间 [英] OpenCV: convert Scalar to different color space

查看:72
本文介绍了OpenCV:将标量转换为不同的色彩空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Scalar定义使用OpenCV绘制的矩形的颜色:

I am using a Scalar to define the color of a rectangle I am drawing with OpenCV:

rectangle(imgOriginal, Point(0, 0), Point(25, 50), Scalar(H, S, V), CV_FILLED);

但是,颜色是在HSV颜色空间中定义的,而不是RGB(imgOriginal是RGB).

However, the color is defined in HSV color space rather than RGB (imgOriginal is RGB).

如何将Scalar(或其输入,整数变量HSV)转换为RGB?

How do I convert Scalar (or its input, the integer variables H, S, and V) to RGB?

(到目前为止,我只找到了答案,告诉我如何使用cvtColor转换整个图像,这不是我想要的.)

(So far I only found answers telling me how to convert a whole image with cvtColor which is not what I want.)

推荐答案

虽然不是最佳方法,但您可以使用以下方法:

Although not optimal, You can use the following:

Scalar ScalarHSV2BGR(uchar H, uchar S, uchar V) {
    Mat rgb;
    Mat hsv(1,1, CV_8UC3, Scalar(H,S,V));
    cvtColor(hsv, rgb, CV_HSV2BGR);
    return Scalar(rgb.data[0], rgb.data[1], rgb.data[2]);
}

这篇关于OpenCV:将标量转换为不同的色彩空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆