【OpenCV进阶】图像中添加中文字幕

 OpenCV中的putText函数可以在图像上添加一些你想要的信息,但是该函数只能添加英文字母或数字,无法添加中文字幕。函数原型如下:

CV_EXPORTS_W void putText( InputOutputArray img, const String& text, Point org,
                         int fontFace, double fontScale, Scalar color,
                         int thickness = 1, int lineType = LINE_8,
                         bool bottomLeftOrigin = false );

当你设置第二个参数const String& text为中文字体时,最终显示在图像上的是会是一串乱码(大概率是一串问号)。

OpenCV自3.2版本后,在OpenCV_contrib模块中添加了freeType模块,将OpenCV_contrib模块编译后可以使用freeType模块并方便的在图像中添加中文字体(如果是3.1之前的OpenCV版本,那就需要你自己下载freeType库,然后编译成动态库再使用了,相信大家应该不会在用那么老的版本了吧)。好了,不废话了,上干货吧。

使用freeType需要添加预编译头文件:

#include "opencv2/freetype.hpp"

创建FreeType2对象,并加载字体类型,比如是楷体类型,宋体类型或者中文简体类型。

cv::Ptr<cv::freetype::FreeType2> ft2;
ft2 = cv::freetype::createFreeType2();
ft2->loadFontData("./Font.ttf",0);

如上代码中Font.ttf是字库,需要自己到网上下载的,网上很多,我下了楷体的中文字体类型(如果大家需要可以私信或者评论,我私发你)

在FreeType2类中也定义了putText成员函数,函数原型如下:

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

可以看到使用方式同一般的putText类似,大家需要看函数定义可以自行到freetype.cpp文件中去查询。

如在图像中显示中文字幕“我爱计算机视觉”,代码片段如下:

ft2->putText(image, "我爱计算机视觉", Point(100, 100), 60, Scalar(0, 0, 255), 
-1, 8, true);
imwrite(saveImagePath, image);

运行完这段代码后,大家可以查看下保存的图像是否成功显示了中文字幕。

如有问题,可以留言或私信,欢迎大家一起交流学习,共同进步。

相关推荐

  1. OpenCV图像添加中文字幕

    2024-04-02 14:26:02       38 阅读
  2. 解决opencv图片添加中文字体乱码问题

    2024-04-02 14:26:02       50 阅读
  3. python 教程--PIL图像处理

    2024-04-02 14:26:02       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-02 14:26:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-02 14:26:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-02 14:26:02       82 阅读
  4. Python语言-面向对象

    2024-04-02 14:26:02       91 阅读

热门阅读

  1. 低代码与系统集成:革新企业应用开发的新动力

    2024-04-02 14:26:02       37 阅读
  2. MYSQL08_页的概述、内部结构、行格式

    2024-04-02 14:26:02       43 阅读
  3. 面试中的MVCC到底是什么意思?

    2024-04-02 14:26:02       44 阅读
  4. Spring与SpringMVC常用注解

    2024-04-02 14:26:02       39 阅读
  5. elasticsearch之多条件查询

    2024-04-02 14:26:02       41 阅读
  6. Redis

    Redis

    2024-04-02 14:26:02      34 阅读
  7. 递归---算法

    2024-04-02 14:26:02       44 阅读
  8. 2024最新华为OD机试试题库全 -【符号运算】- C卷

    2024-04-02 14:26:02       38 阅读
  9. ES6中的Map与Set

    2024-04-02 14:26:02       43 阅读