我正在尝试生成随机柔和的颜色。
说柔和的颜色具有低值/强度值(HS V )是否正确?因此,像这样的东西应该生成随机的柔和色彩:Vec3b randPastel = Vec3b(rng.uniform(0, 180), rng.uniform(0, 255), rng.uniform(0, 50))
我当前的功能失败了。它只会出于某种原因产生黑色BGR颜色:
Vec3b randPastelBGR()
{
Mat hsv(1, 1, CV_8UC3);
cvtColor(hsv, hsv, CV_BGR2HSV);
hsv.at<Vec3b>(0, 0) = Vec3b(rng.uniform(0, 180), rng.uniform(0, 255), rng.uniform(0, 50));
cvtColor(hsv, hsv, CV_HSV2BGR);
return hsv.at<Vec3b>(0, 0);
}
答案 0 :(得分:1)
粉彩大多是白色的,即它们具有低饱和度。但不是零,因为那将是完全白色(或灰色)。正如您所注意到的,低价值会让您看到深色。你想要一个相当高的价值,甚至可能不想要一个随机的价值。 (究竟哪些颜色部分必须是随机的,为什么?)
答案 1 :(得分:0)
我需要类似的东西。我很快就为每个RGB值尝试105*Rand() + 150
,它看起来效果很好。这将为您提供150到255之间的值,即较浅的颜色。这不是c ++,但我使用的软件为Rand()
创建了0到1的值。