opencv 2.x学习笔记(十)随机数发生器、绘制文字

本文介绍了OpenCV中的随机数生成器RNG的使用,包括构造函数、生成均匀分布和高斯分布随机数的方法。同时,详细讲解了如何使用putText函数在图像上绘制文字,包括参数设置和实例演示。
摘要由CSDN通过智能技术生成

在上一篇中,我们了解了如何使用opencv为我们提供的基本绘图函数来为我们来绘制一个简单的图像。在这一篇中,我们将继续使用上一篇中所讲到的函数来演示opencv的随机数产生功能以及如何绘制文字。

随机数产生器

在我们的程序中,经常需要使用随机数生成功能。为此,opencv为我们提供了一个随机数生成器类,RNG。它封装了一个64位的int类型整数,为此我们课可以得到一个随机的Scalar和随机的数组。目前,它支持产生均匀分布随机数和高斯分布随机数。

它的构造函数的初始化可以传入一个64位的整型参数作为随机数产生器的初值。RNG类的定义大致如下:

/*!
   Random Number Generator

   The class implements RNG using Multiply-with-Carry algorithm
*/
class CV_EXPORTS RNG
{
public:
    enum { UNIFORM=0, NORMAL=1 };

    RNG();
    RNG(uint64 state);
    //! updates the state and returns the next 32-bit unsigned integer random number
    unsigned next();

    operator uchar();
    operator schar();
    operator ushort();
    operator short();
    operator unsigned();
    //! returns a random integer sampled uniformly from [0, N).
    unsigned operator ()(unsigned N);
    unsigned operator ()();
    operator int();
    operator float();
    operator double();
    //! returns uniformly distributed integer random number from [a,b) range
    int uniform(int a, int b);
    //! returns uniformly distributed floating-point random number from [a,b) range
    float uniform(float a, float b);
    //! returns uniformly distributed double-precision floating-point random number from [a,b) range
    double uniform(double a, double b);
    void fill( InputOutputArray mat, int distType, InputArray a, InputArray b, bool saturateRange=false );
    //! returns Gaussian random variate with mean zero.
    double gaussian(double sigma);

    uint64 state;
};
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值