当前位置:
首页 >
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绘制文字的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: OpenCV 【十五】绘直线/椭圆/矩形
- 下一篇: OpenCV 【十七】离散傅立叶变换