概述
用于生成随机数。
1.函数randu()
用于生产均匀分布的随机数。
void cv::randu
(
InputOutputArray dst,
InputArray low,
InputArray high
)
dst | 随机数的输出对象;必须预先定义好大小。 |
low | 生成随机数的包含下边界。 |
high | 生成的随机数的独占上界。 |
2.函数randn()
用于生产正态分布的随机数。
void cv::randn
(
cv::InputOutputArray mtx,
cv::InputArray mean,
cv::InputArray stddev
)
matx | 随机数的输出对象;必须预先定义好大小。 |
mean | 随机数的平均值。 |
stddev | 随机数的标准偏差。 |
测试代码
#include "widget.h"
#include "ui_widget.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <vector>
using namespace cv;
using namespace std;
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//randu均匀分布
cv::Mat mat1(200,200,CV_8UC1);
cv::randu(mat1,cv::Scalar(1),cv::Scalar(255));
imshow("mat1",mat1);
//randn正态分布
cv::Mat mat2(200,200,CV_8UC1);
cv::randn(mat2,cv::Scalar(200),cv::Scalar(30));
imshow("mat2",mat2);
}
Widget::~Widget()
{
delete ui;
}