例子很簡單吶就是讓它畫很多圖,分配不同的顏色,下面我們來看看吧;
例子比較簡單,這裏只是簡單記錄一下,話不多說,上例子吧:
// 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將是隨機值,所以線位置將是非常不可預測的,給出一個很好的視覺效果(查看下面的結果部分)。
然後就是這個了。簡單明瞭,還無聊。
喜歡本文章的歡迎關注我的博客,一起記錄成長的過程。