OpenCV基础教程——绘制文字1【cv::putText】

文字绘制函数
函数名称 描述
cv::putText() 在图片上绘制指定文字
cv::getTextSize() 获取一个文字的宽度和高度

绘制文字【cv::putText】

API详解如下

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'
);

其中fontFace参数支持的字体如下

标识符 描述
 FONT_HERSHEY_SIMPLEX                   = 0 !< normal size sans-serif font  普通大小无衬线字体
FONT_HERSHEY_PLAIN                         = 1 !< small size sans-serif font     小号无衬线字体
FONT_HERSHEY_DUPLEX                     = 2 !< normal size sans-serif font (more complex than FONT_HERSHEY_SIMPLEX)      普通大小无衬线字体
FONT_HERSHEY_COMPLEX                 = 3 !< normal size serif font   普通大小无衬线字体比 FONT_HERSHEY_DUPLEX 更复杂
FONT_HERSHEY_TRIPLEX                    = 4 

!< normal size serif font (more complex than FONT_HERSHEY_COMPLEX  

普通大小无衬字体,比 FONT_HERSHEY_COMPLEX 更复杂

FONT_HERSHEY_COMPLEX_SMALL = 5

!< smaller version of FONT_HERSHEY_COMPLEX

小号版本的  FONT_HERSHEY_COMPLEX

FONT_HERSHEY_SCRIPT_SIMPLEX   = 6 !< hand-writing style font     手写字体
FONT_HERSHEY_SCRIPT_COMPLEX = 7

!< more complex variant of FONT_HERSHEY_SCRIPT_SIMPLEX

比 FONT_HERSHEY_SCRIPT_SIMPLEX  更复杂的变体

FONT_ITALIC                                          = 16 !< flag for italic font 

表中列出来的任何一个字体都可以和CV::FONT_ITALIC 组合使用(通过或操作)来得到斜体

每种字体都有一个“自然”大小,当fontScale不是1.0时,在文字绘制之前字体大小将由这个数缩放

验证代码以及结果如下

#include<iostream>
#include<opencv2\opencv.hpp>

using namespace cv;

int main()
{
    Mat img = imread("E:/myFile/picture/kobe.jpg");
    const std::string str1 = "Hello Kobe!";

    putText(img, str1, Point2i(40, 150), FONT_HERSHEY_SIMPLEX, 1, Scalar(0, 255, 0), 1, 8, false);
    putText(img, str1, Point2i(40, 180), FONT_HERSHEY_PLAIN, 1, Scalar(0, 255, 0), 1, 8, false);
    putText(img, str1, Point2i(40, 210), FONT_HERSHEY_DUPLEX, 1, Scalar(0, 255, 0), 1, 8, false);
    putText(img, str1, Point2i(40, 240), FONT_HERSHEY_COMPLEX, 1, Scalar(0, 255, 0), 1, 8, false);
    putText(img, str1, Point2i(40, 270), FONT_HERSHEY_TRIPLEX, 1, Scalar(0, 255, 0), 1, 8, false);
    putText(img, str1, Point2i(40, 300), FONT_HERSHEY_COMPLEX_SMALL, 1, Scalar(0, 255, 0), 1, 8, false);
    putText(img, str1, Point2i(40, 330), FONT_HERSHEY_SCRIPT_SIMPLEX, 1, Scalar(0, 255, 0), 1, 8, false);
    putText(img, str1, Point2i(40, 360), FONT_HERSHEY_SCRIPT_COMPLEX, 1, Scalar(0, 255, 0), 1, 8, false);
    putText(img, str1, Point2i(40, 390), FONT_ITALIC | FONT_HERSHEY_PLAIN, 1, Scalar(0, 255, 0), 1, 8, false);

    imshow("kobe", img);
    waitKey(0);
    return 0;
}

OpenCV基础教程——绘制文字2【cv::getTextSize】见下面网址

https://blog.csdn.net/Gary_ghw/article/details/103746709

发布了12 篇原创文章 · 获赞 27 · 访问量 783

猜你喜欢

转载自blog.csdn.net/Gary_ghw/article/details/103746662