(6条消息) 【OpenCV3】文字绘制

opencv中除了提供绘制各种图形的函数外,还提供了一个特殊的绘制函数——在图像上绘制文字。这个函数即是cv::putText()。

具体形式如下:

  1. void cv::putText(
  2. cv::Mat& img, // 待绘制的图像
  3. const string& text, // 待绘制的文字
  4. cv::Point origin, // 文本框的左下角
  5. int fontFace, // 字体 (如cv::FONT_HERSHEY_PLAIN)
  6. double fontScale, // 尺寸因子,值越大文字越大
  7. cv::Scalar color, // 线条的颜色(RGB)
  8. int thickness = 1, // 线条宽度
  9. int lineType = 8, // 线型(4邻域或8邻域,默认8邻域)
  10. bool bottomLeftOrigin = false // true='origin at lower left'
  11. );

opencv支持的文字字体有以下几种:

另外,我们在实际绘制文字之前,还可以使用cv::getTextSize()接口先获取待绘制文本框的大小,以方便放置文本框。具体调用形式如下:

  1. cv::Size cv::getTextSize(
  2. const string& text,
  3. cv::Point origin,
  4. int fontFace,
  5. double fontScale,
  6. int thickness,
  7. int* baseLine
  8. );

下面就通过一个示例,来看看cv::getTextSize()与cv::putText()相结合的妙用:

  1. //创建空白图用于绘制文字
  2. cv::Mat image = cv::Mat::zeros(cv::Size(640, 480), CV_8UC3);
  3. //设置蓝色背景
  4. image.setTo(cv::Scalar(100, 0, 0));
  5. //设置绘制文本的相关参数
  6. std::string text = "Hello World!";
  7. int font_face = cv::FONT_HERSHEY_COMPLEX;
  8. double font_scale = 2;
  9. int thickness = 2;
  10. int baseline;
  11. //获取文本框的长宽
  12. cv::Size text_size = cv::getTextSize(text, font_face, font_scale, thickness, &baseline);
  13. //将文本框居中绘制
  14. cv::Point origin;
  15. origin.x = image.cols / 2 - text_size.width / 2;
  16. origin.y = image.rows / 2 + text_size.height / 2;
  17. cv::putText(image, text, origin, font_face, font_scale, cv::Scalar(0, 255, 255), thickness, 8, 0);
  18. //显示绘制解果
  19. cv::imshow("image", image);
  20. cv::waitKey(0);
  21. return 0;

绘制解果如下:

2017.03.30

(0)

相关推荐

  • 用OpenCV实现猜词游戏

    小伙伴们是不是在用OpenCV来处理图像处理的相关任务,从来没有想过还可以通过OpenCV设计一款游戏,今天小白将为各位小伙伴们介绍如何通过OpenCV创建一个猜词的小游戏.为了增加趣味性,我们给小游 ...

  • 数字图像处理——opencv-python

    运行环境为jupyter notebook,已安装python,opencv-python(4.5.3.56) 一. 1.imread函数:读取数字图像 cv2.imread(path_of_imag ...

  • 基于Python的颜色识别器

    重磅干货,第一时间送达 在这篇文章中,我们将展示如何使用Python构建颜色识别器.此过程也称为"颜色检测".我们将创建一个基本应用程序,该应用程序将帮助我们检测图像中的颜色.该程 ...

  • OpenCV基础知识入门

    本文旨在让你快速入门opencv. OpenCV OpenCV是计算机视觉中最受欢迎的库,最初由intel使用C和C ++进行开发的,现在也可以在python中使用.该库是一个跨平台的开源库,是免费使 ...

  • 【从零学习OpenCV 4】Mat类支持的运算

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 使用卷积神经网络预防疲劳驾驶事故

    重磅干货,第一时间送达 疲劳驾驶:一个严重的问题 美国国家公路交通安全管理局估计,每年有 91,000 起车祸涉及疲劳驾驶的司机,造成约50,000 人受伤和近 800 人死亡.此外,每 24 名成年 ...

  • python+opencv读入和显示图片

    多久消失不见的本人,又回来啦!!! 这段时间换了老板,嘻嘻,也换了要学习的内容了,如此不专一,流汗中... 由于是本人兴趣爱好,更新时间不一定哦 疫情当前,请大家保重自己!!! ----------- ...

  • 使用opencv

    终于等到python版本的opencv4.4版本了,不用麻烦的编译opencv4.4,就可以调用yolov4模型了.昨天更新的版本! 在opencv4.4出来之前,通过编译darknet来推理yolo ...

  • 使用Python接口调用yolov3和yolov4检测视频并保存检测视频

    cv2.putText(img, label, text_pos, cv2.FONT_HERSHEY_SIMPLEX, thickness / 3, [225, 255, 255], thicknes ...

  • 《python opencv实践》一、基于颜色的物体追踪(上)

    cnts = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]