OpenCV 第8课随机画图与OpenCV文本

例子很简单呐就是让它画很多图,分配不同的颜色,下面我们来看看吧;

例子比较简单,这里只是简单记录一下,话不多说,上例子吧:

// opencv00008.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

static const char WINTITLE[] = "randomlines-demo";


int drawRandomLines(Mat image)
{
	RNG rng(0xffffffff); //初始化
	Point pt1, pt2;
	for (int i = 0; i< 100000;i++)
	{
		pt1.x = rng.uniform(0, image.cols);
		pt2.x = rng.uniform(0, image.cols);
		pt1.y = rng.uniform(0, image.rows);
		pt2.y = rng.uniform(0, image.rows);
		int r = rng.uniform(0, 255);
		int g = rng.uniform(0, 255);
		int b = rng.uniform(0, 255);
		line(image, pt1, pt2, Scalar(b,g,r),1,8); //画线
		putText(image, "lcy  lcy", Point(image.cols / 2 - 80, image.rows / 2),
			CV_FONT_HERSHEY_PLAIN, 2.0, Scalar(b, g, r), 4, 8);
		imshow(WINTITLE, image);
		if (waitKey(10) >= 0)
		{
			return -1;
		}
	}
}
int main()
{
	Mat image = Mat::zeros(Size(450, 450), CV_8UC3);
	namedWindow(WINTITLE, CV_WINDOW_AUTOSIZE);
	int ok = drawRandomLines(image);
	if (ok != 0) {
		return 0;
	}
    return 0;
}

  RNG实现一个随机数生成器。在本例中,rng是以0xFFFFFFFF值初始化的RNG元素。

  • 我们知道rng是一个随机数生成器对象。在上面的代码中,我们调用rng.uniform(a,b)。这产生了值a和b之间的随机均匀分布(包括在a中,排除在b中)。
  • 从上面的解释,我们推导出极值pt1和pt2将是随机值,所以线位置将是非常不可预测的,给出一个很好的视觉效果(查看下面的结果部分)。

然后就是这个了。简单明了,还无聊。

喜欢本文章的欢迎关注我的博客,一起记录成长的过程。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值