产生随机数是编程中经常用到的操作,特别在进行初始化的时候需要赋一些随机值。OpenCV也编写了C++的随机数类RNG,关于随机数的解释请看下方链接。
下方的代码通过RNG获取随机数,得到随机点,进行随机线的绘制。同时颜色也是通过随机数获得。
示例代码:
Mat canvas = Mat::zeros(Size(512,512), CV_8UC3);
int w = canvas.cols;
int h = canvas.rows;
RNG rng(123456);
while (true)
{
int c = waitKey(100);
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);
canvas = Scalar(0,0,0);
line(canvas, Point(x1, y1), Point(x2, y2), Scalar(b, g, r), 4, LINE_AA, 0);
imshow("随机绘制演示", canvas);
}