欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

OpenCV 【十六】RNG随机数发生器putText绘制文字

发布时间:2023/11/27 62 豆豆
生活随笔 收集整理的这篇文章主要介绍了 OpenCV 【十六】RNG随机数发生器putText绘制文字 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 

1 目的

  • 使用 随机数发生器类 (RNG) 并得到均匀分布的随机数。

  • 通过使用函数 putText 显示文字。

第一步是实例化一个 Random Number Generator(随机数发生器对象) (RNG):

RNG rng( 0xFFFFFFFF );

初始化一个 0 矩阵(代表一个全黑的图像), 并且指定它的宽度,高度,和像素格式:

/// 初始化一个0矩阵
Mat image = Mat::zeros( window_height, window_width, CV_8UC3 );
​
/// 把它会知道一个窗口中
imshow( window_name, image );

 

putText( image, "Testing text rendering", org, rng.uniform(0,8),rng.uniform(0,100)*0.05+0.1, randomColor(rng), rng.uniform(1, 10), lineType);

函数 putText 都做了些什么?在我们的例子中:

  • image 上绘制文字 “Testing text rendering”

  • 文字的左下角将用点 org 指定。

  • 字体参数是用一个在 ![0, 8> 之间的整数来定义。

  • 字体的缩放比例是用表达式 rng.uniform(0, 100)x0.05 + 0.1 指定(表示它的范围是 ![0.1, 5.1>)。

  • 字体的颜色是随机的 (记为 randomColor(rng))。

  • 字体的粗细范围是从 1 到 10, 表示为 rng.uniform(1,10)

因此, 我们将绘制 (与其余函数类似) NUMBER 个文字到我们的图片上,以位置随机的方式。

2 代码

static Scalar randomColor(RNG& rng)
{int icolor = (unsigned)rng;return Scalar(icolor & 255, (icolor >> 8) & 255, (icolor >> 16) & 255);
}
int window_height =400, window_width = 400;
int main(int argc, char** argv) {RNG rng(0xFFFFFFFF);/// 初始化一个0矩阵Mat image = Mat::zeros(window_height, window_width, CV_8UC3);
​/// 在随机的地方绘制文字int  c = Displaying_Random_Text(image, "window_name", rng);if (c != 0) return 0;
​for (size_t i = 0; i < 10; i++){
​Point org;org.x = rng.uniform(1, 200);org.y = rng.uniform(2, 400);putText(image, "Testing text rendering", org, rng.uniform(0, 8),rng.uniform(0, 10)*0.05 + 0.1, randomColor(rng), rng.uniform(1, 2), LINE_8);}
​/// 等待用户按键waitKey();return 0;
​
}

 

3 结果

 

总结

以上是生活随笔为你收集整理的OpenCV 【十六】RNG随机数发生器putText绘制文字的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。