个人资料,仅供学习使用
学习课程:OpenCV4 C++ 快速入门视频30讲——贾志刚
15 随机数与随机颜色
opencv知识点:
- 随机数 - RNG
- 线段绘制 - line()
本课所解决的问题:
- 如何在绘制图形中利用到随机数?
1.利用随机数设置坐标与颜色
我们绘制一个线段,把两个点的坐标,还有三个通道的颜色都设置为了随机数得到
//函数定义
void randow_drawing();
//函数实现
void QuickDemo::randow_drawing() {
Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);
int w = canvas.cols;
int h = canvas.rows;
RNG rng(5465);//我们随便输入1个数作为种子
while (true) {
int c = waitKey(10);
if (c == 27) {//退出
break;
}
int x1 = rng.uniform(0, w);
int y1 = rng.uniform(0, h);
int x2 = rng.uniform(0, w);
int y2 = rng.uniform(0, h);
int b = rng.uniform(0, 255);
int g = rng.uniform(0, 255);
int r = rng.uniform(0, 255);
line(canvas, Point(x1, y1), Point(x2, y2), Scalar(b, g, r), 1, 8, 0);
imshow("随机线段", canvas);
}
}
本课所用API查阅
RNG
RNG(Random Number Generator,随机数生成器)是opencv中的一个随机数生成器类
uniform是RNG中的一个方法,uniform(a,b),指定数的范围为(a,b)
line()