core核心模块--随机数发生器&文字绘制
来源:互联网 发布:淘宝美日心情狐狸美妆 编辑:程序博客网 时间:2024/06/05 11:43
1.目的
(1)使用随机数发生器(RNG)获得均匀分布的随机数
(2)使用putText函数显示文字
2.部分代码实现
(1)实例化一个随机数发生器
//使用0xffffffff初始化随机数生成器 RNG rng(0xffffffff)
(2)使用随机数发生器产生均匀分布
//产生0-100的随机整数 //uniform:均匀分布 int min = 0; int max = 100; rng.uniform(min, max);
(3)使用随机数发生器随机产生Scalar
static Scalar RandomColor(RNG rng){ return(Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255)));}
(4)使用随机数发生器绘制随机线条
int DrawingRandomLine(Mat& image, char windowName[], RNG rng){ if(!image.data){ cout << "more parameters are required!!!" << endl; return(-1); } int lineType = 8; Point X,Y; for(int i=0; i<100; i++){ //使用rng.uniform获取1-500的随机整数 X.x = rng.uniform(1,500); X.y = rng.uniform(1,500); Y.x = rng.uniform(1,500); Y.y = rng.uniform(1,500); //RandomColor(rng):随机产生颜色 line(image, X, Y, RandomColor(rng), rng.uniform(1,10), lineType); imshow(windowName, image); //waitKey(DELAY)等待键盘输入,并延迟 if(waitKey(DELAY)>=0){ return(-1); } } return(0);}
(4)使用随机数发生器绘制文字
int DrawingText(Mat& image, char windowName[], RNG rng){ int lineType = 8; Point org; for(int i=0; i<100; i++){ org.x = rng.uniform(1,500); org.y = rng.uniform(1,500); /* putText参数解释 image:绘制画板 “OpenCV Forever”:绘制的文字信息 org:绘制的文字的左上角坐标 rng.uniform(0,8):字体类型 rng.uniform(1,5):文字缩放比例 RandomColor(rng):字体颜色 rng.uniform(1,10):字体粗细 lineType:画线类型 */ putText(image, "OpenCV Forever", org, rng.uniform(0,8), rng.uniform(1,5), RandomColor(rng), rng.uniform(1,10), lineType); imshow(windowName, image); if(waitKey(DELAY)>=0){ return(-1); } } waitKey(0); return(0);}
3.完整代码
Random.cpp
#include "CommonInclude.h"#define DELAY 10static Scalar RandomColor(RNG rng){ return(Scalar(rng.uniform(0,255),rng.uniform(0,255),rng.uniform(0,255)));}int DrawingRandomLine(Mat& image, char windowName[], RNG rng){ if(!image.data){ cout << "more parameters are required!!!" << endl; return(-1); } int lineType = 8; Point X,Y; for(int i=0; i<100; i++){ //使用rng.uniform获取1-500的随机整数 X.x = rng.uniform(1,500); X.y = rng.uniform(1,500); Y.x = rng.uniform(1,500); Y.y = rng.uniform(1,500); line(image, X, Y, RandomColor(rng), rng.uniform(1,10), lineType); imshow(windowName, image); //waitKey(DELAY)等待键盘输入,并延迟 if(waitKey(DELAY)>=0){ return(-1); } } return(0);}int DrawingText(Mat& image, char windowName[], RNG rng){ int lineType = 8; Point org; for(int i=0; i<100; i++){ org.x = rng.uniform(1,500); org.y = rng.uniform(1,500); /* putText参数解释 image:绘制画板 “OpenCV Forever”:绘制的文字信息 org:绘制的文字的左上角坐标 rng.uniform(0,8):字体类型 rng.uniform(1,5):文字缩放比例 RandomColor(rng):字体颜色 rng.uniform(1,10):字体粗细 lineType:画线类型 */ putText(image, "OpenCV Forever", org, rng.uniform(0,8), rng.uniform(1,5), RandomColor(rng), rng.uniform(1,10), lineType); imshow(windowName, image); if(waitKey(DELAY)>=0){ return(-1); } } waitKey(0); return(0);}int main(int argc, char** argv){ int imageX; int cReturn; char windowName[] = "RandomDrawing"; cout << "Input size of image:"; cin >> imageX; Mat image = Mat::zeros(imageX,imageX,CV_8UC3); //实例化一个随机数生成器 RNG rng(0xFFFFFFFF); cReturn = DrawingRandomLine(image, windowName, rng); if(cReturn == -1){ cout << "end of the function!!!" << endl; return(-1); } cReturn = DrawingText(image, windowName, rng); if(cReturn == -1){ cout << "end of the function!!!" << endl; return(-1); } return(0);}
CommonInclude.h
#ifndef COMMON_INCLUDE#define COMMON_INCLUDE#include<iostream>#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>using namespace std;using namespace cv;#endif
参考文献
1.http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/core/random_generator_and_text/random_generator_and_text.html#drawing-2
阅读全文
0 0
- core核心模块--随机数发生器&文字绘制
- OpenCV之core 模块. 核心功能(2)基本绘图 随机数发生器&绘制文字 离散傅立叶变换 输入输出XML和YAML文件 与 OpenCV 1 同时使用
- OpenCV学习:随机数发生器&绘制文字
- 随机数发生器&绘制文字---opencv2.4.11
- opencv c++函数 基础7 随机数发生器&绘制文字
- 随机数发生器&绘制文字-----学习记录(6)
- 学习OpenCV(七)——随机数发生器和绘制文字
- opencv 2.x学习笔记(十)随机数发生器、绘制文字
- 【OpenCV 学习】自带示例:随机数发生器&绘制文字 代码注释解析
- 随机数发生器
- 随机数发生器
- 随机数发生器
- 随机数发生器
- 随机数发生器
- 随机数发生器
- 随机数发生器
- 随机数发生器
- 随机数发生器
- 类模版
- React Js 精简 Toast 提示框 不使用jquery
- (转载)VMware厚置备延迟置零,厚置备置零,精简置备详解
- js浮点运算问题分析与解决
- centos安装python
- core核心模块--随机数发生器&文字绘制
- 使用SSM搭建项目,启动报:Result Maps collection already contains value for XXXMapper的解决方案
- java 开发用到网络爬虫,抓取某某网站数据经历
- 3.JavaScript深入之执行上下文栈
- [已解决]Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/Strin
- 对象和类
- 下载SVN控制面板的地址
- TensorFlow学习笔记之——常用函数(概览)
- 杭州人才落户操作指南