OpenCV iOS 隨機數發生器(7)

2021-09-11 14:28:49 字數 2154 閱讀 3730

隨機發生器 (rng全稱random number generator)

通過隨機發生器(rng)生成得到均勻分布的隨機數。

**與解析(畫圓為例)

(1)首先生成乙個random number generator物件(rng):

// 用數值 0xffffffff 來例項化的乙個rng物件

rng rng(0xffffffff);

(2)建立乙個空影象

mat image = mat::zeros(self.view.bounds.size.width, self.view.bounds.size.height, cv_8sc3);

(3)呼叫畫圓的方法

drawingrandomcircle(image, rng);

(4)畫圓的實現方法(注意 :這裡rng.uniform(n, m);是表示集合[n, m)即 :

n <= rng.uniform(n, m) < m)

void drawingrandomcircle(mat& image,rng rng)

int circle_thickness = 2;

int circle_linetype = 8;

cv::point point;

for (int i = 0; i < number; i++)

繪製到

ima**iew1.image = mattouiimage(image);

**呼叫
uiimageview *ima**iew1 = [[uiimageview alloc] initwithframe:cgrectmake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

number = 50;

[self.view addsubview:ima**iew1];

rng rng(0xffffffff);

mat image = mat::zeros(self.view.bounds.size.width, self.view.bounds.size.height, cv_8sc3);

//    drawingrandomellipses(image, rng);// 繪製橢圓

drawingrandomcircle(image, rng);// 繪製圓

ima**iew1.image = mattouiimage(image);

實現效果

繪製橢圓的方法

void drawingrandomellipses(mat& image,rng rng)

// 線形

int ellipses_linetype = 8;

// 建立畫素點,這個用來存放弧線的中心位置

cv::point point;

// 這個用來存放弧線的長軸和短軸的大小

cv::size size;

// 這裡的number是全域性int常量,表示繪製number條弧線

for (int i = 0; i < number; i++) {

// 隨機生成弧線的中心點(x,y)

point.x = rng.uniform(1, 501);

point.y = rng.uniform(1, 501);

// 隨機生成弧線長短軸(a,b)

size.width = rng.uniform(1, 501);

size.height = rng.uniform(1, 501);

// 畫弧線

cv::ellipse(image, point, size, rng.uniform(0, 360), rng.uniform(0, 360), rng.uniform(0, 360), randomcolor(rng),rng.uniform(1, 10),ellipses_linetype);

參考資料

opencv for ios 學習筆記(六)—— 隨機數發生器

隨機數發生器&繪製文字

boost 隨機數發生器

在很多應用中都需要使用隨機數。本庫力求提供乙個高效的,通用的隨機數庫。boost庫有多種隨機數生成方式。先熟悉一下各種隨機數生成器的概念。數字生成器 number generator 它是乙個函式物件,沒有引數。類似於常見的rand 均勻隨機數生成器 uniform random number ge...

opencv隨機數發生器RNG

用opencv做演算法的朋友們肯定為隨機數煩惱過,新版本一直支援隨機數產生器啦,而且還繼續支援之前版本的c格式的函式,不過與時俱進,我這裡介紹c 的rng類。它可以壓縮乙個64位的i整數並可以得到scalar和array的隨機數。目前的版本支援均勻分布隨機數和gaussian分布隨機數。隨機數的產生...

產生隨意隨機數發生器

怎樣利用給定的隨機數發生器產生其它隨意你想得到的隨機數發生器。假定給定的隨機數發生器是變數產生離散變數x 服從某一分布 比如均勻分布。高斯分布等等 隨意你想得到的隨機數發生器滿足分布 y,如果x和 y其概率密度分布函式分布為 g x h y 假定用x 隨機數發生器產生 y隨機數發生器,以下分為2步求...