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

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值