fue*_*zig 6 c++ opencv color-space
我用a Scalar来定义我正在绘制的矩形的颜色OpenCV:
rectangle(imgOriginal, Point(0, 0), Point(25, 50), Scalar(H, S, V), CV_FILLED);
Run Code Online (Sandbox Code Playgroud)
但是,颜色是在HSV颜色空间而不是RGB(imgOriginalRGB)中定义的.
如何转换Scalar(或它的输入,整数变量H,S和V)为RGB?
(到目前为止,我只找到了答案,告诉我如何转换整个图像,cvtColor而不是我想要的.)
虽然不是最佳,但您可以使用以下内容:
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]);
}
Run Code Online (Sandbox Code Playgroud)
Ram*_*ama -1
使用它来转换单个值:
cv::Vec3f rgb;
cv::Vec3f hsv;
hsv[0] = H;
hsv[1] = S;
hsv[2] = V;
cvtColor(hsv, rgb, CV_HSV2BGR);
Run Code Online (Sandbox Code Playgroud)
然后你就可以使用它:
rectangle(imgOriginal, Point(0, 0), Point(25, 50),
Scalar(rgb[0], rgb[1], rgb[2]), CV_FILLED);
Run Code Online (Sandbox Code Playgroud)