简介
在测试算法的时候,或者某些算法需要使用随机数,本文介绍如何使用OpenCV的随机数相关功能。
主要内容:
1. cv::RNG类 —— random number generator
2. cv::randu —— 填充均匀分布随机数
3. cv::randn —— 填充高斯分布随机数
cv::RNG
RNG是OpenCV用来产生随机数的类,他可以产生标量随机数,也可以使用随机数填充Mat对象。当前它只支持均匀分布和高斯分布的随机数。
用实例展示如何产生标量随机数和填充Mat对象。
例1,产生标量随机数。
#include <iostream>
#include <opencv2/opencv.hpp>
int main(){
cv::RNG rnger(cv::getTickCount());
for (int i = 0; i < 10; i++){
std::cout << "int uniform random number : " << rnger.uniform(0, 10) << std::endl;
std::cout << "float uniform random number : " << rnger.uniform(0.f, 1.f) << std::endl;
std::cout << "double uniform random number : " << rnger.uniform(0., 1.) << std::endl;
std::cout << "double gaussian random number : " << rnger.gaussian(1.) << std::endl;
std::cout << std::endl;
}
return 0;
}
例2,用随机数填充矩阵
#include <iostream>
#include <opencv2/opencv.hpp>
int main(){
cv::RNG rnger(cv::getTickCount());