【OpenCV3】文字绘制 您所在的位置:网站首页 mom字体图片 【OpenCV3】文字绘制

【OpenCV3】文字绘制

#【OpenCV3】文字绘制| 来源: 网络整理| 查看: 265

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

具体形式如下:

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

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

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

cv::Size cv::getTextSize( const string& text, cv::Point origin, int fontFace, double fontScale, int thickness, int* baseLine );

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

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

绘制解果如下:

2017.03.30



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有