利用随机数绘制图像
在图片上随机生成线段
void QuickDemo::random_drawing() {
Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);
int w = canvas.cols;
int h = canvas.rows;
RNG rng(12345);//Random number generator产生随机数。该类拥有返回标量随机值和用随机值填充数组的方法。
while (true) {
int c = waitKey(10);
if (c == 27) { // 退出
break;
}
int x1 = rng.uniform(0, w);//uniform(a,b)返回一个在a和b之间的随机数
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);//在这个位置将黑色背景重新复制,可以达到重新刷新图片的效果。在图片上每次只显示一条直线
waitKey(300);
line(canvas, Point(x1, y1), Point(x2, y2), Scalar(b, g, r), 1, LINE_AA, 0);
imshow("随机绘制演示", canvas);
}
}