OpenCV 使用freetype在图像上写中文

​​​​​​在这里插入图片描述

#include "opencv2/opencv.hpp"
#include "opencv2/freetype.hpp"

static cv::Ptr<cv::freetype::FreeType2> getFreeType()
{
    static cv::Ptr<cv::freetype::FreeType2> ft2;

    if (ft2.empty())
    {
        ft2 = cv::freetype::createFreeType2();
        ft2->loadFontData("simhei.ttf", 0);
    }
    return ft2;
}
void test_freetype()
{
    cv::Mat frame(256, 256, CV_8UC3, cv::Scalar::all(0));
    static cv::String text = "AIS开启中,请稍后……";

    int baseline = 0;
    cv::Size textSize = getFreeType()->getTextSize(text,
                                                   30, //fontHeight
                                                   -1, //thickness
                                                   &baseline);

    // center the text
    cv::Point textOrg((frame.cols - textSize.width) / 2, textSize.height * 2);

    // then put the text itself
    getFreeType()->putText(frame, text, textOrg, 30, cv::Scalar(0, 0, 255), -1, 4, true); //linestyle= 4

    cv::imwrite("freetype.jpg",frame);
}

/** @brief Draws a text string.

The function putText renders the specified text string in the image. Symbols that cannot be rendered using the specified font are replaced by “Tofu” or non-drawn.

@param img Image.
@param text Text string to be drawn.
@param org Bottom-left/Top-left corner of the text string in the image.
@param fontHeight Drawing font size by pixel unit.
@param color Text color.
@param thickness Thickness of the lines used to draw a text when negative, the glyph is filled. Otherwise, the glyph is drawn with this thickness.
@param line_type Line type. See the line for details.
@param bottomLeftOrigin When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner.
*/

CV_WRAP virtual void putText(
    InputOutputArray img, const String& text, Point org,
    int fontHeight, Scalar color,
    int thickness, int line_type, bool bottomLeftOrigin
) = 0;

参考文章:
关于OpenCV无法putText汉字的坑

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

waf13916

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值