OpenCV (iOS)随机数发生器(7)

随机发生器 (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++) {

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

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

int w = rng.uniform(1, 50);

cv::circle(image, point, w,randomColor(rng),circle_thickness,circle_lineType);

}

}

randomColor函数的实现 :

// 该函数返回 Scalar 类型,线条的颜色 (R, G, B)

static Scalar randomColor( RNG& rng) {

int icolor = (unsigned) rng;   

 returnScalar( icolor&255, (icolor>>8)&255, (icolor>>16)&255 );

}

绘制到图片

imagView1.image = MatToUIImage(image);


代码调用

UIImageView *imagView1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];

number = 50;

[self.view addSubview:imagView1];

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);// 绘制圆

imagView1.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 学习笔记(六)—— 随机数发生器

随机数发生器&绘制文字

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容

  • 环境配置 :OpenCV在xCode中的安装与环境配置 随机发生器 (RNG 全称 Random number g...
    FLNuo阅读 823评论 0 2
  • 不管什么样的人,如果与别人构建不好关系,都体验不到幸福。 面对陌生人,很难去沟通和交流,宅在家里会让自己很舒服,在...
    423429d90f38阅读 196评论 0 0
  • 1.追求 云在天上 土在远方 云很薄 土却很厚 2.理想之火 蜘蛛网盘结了小屋 绿色玻璃已经破碎 开启封存了的坛罐...
    望北集阅读 167评论 1 6
  • 何为缘,即是上辈子未偿的债。 缘,终究是命。命,只得由天。 都说命中注定,这事也注定,那事也管得,一切自有上天安排...
    佑卿剑阅读 237评论 0 0