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

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

cpp 复制代码
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需要添加预编译头文件:

cpp 复制代码
#include "opencv2/freetype.hpp"

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

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

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

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

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

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

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

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

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

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

相关推荐
AI人工智能+31 分钟前
基于深度学习与计算机视觉的表格识别技术:不仅能精准提取表格中的文字内容,更能深度解析复杂的表格结构,实现版面信息的完美还原
深度学习·计算机视觉·自然语言处理·ocr·表格识别
盼小辉丶1 小时前
OpenCV-Python实战(25)——基于深度传感器与凸性分析打造实时手势识别系统
人工智能·python·opencv·计算机视觉
XINVRY-FPGA2 小时前
XC7Z035-2FFG900I Xilinx/AMD Zynq-7000 SoC FPGA
人工智能·嵌入式硬件·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
OpenBayes贝式计算15 小时前
端侧同尺寸 SOTA:OpenBMB 发布 1B 参数模型 MiniCPM5-1B;集成多级平行语料与多语言词典:SMOL 翻译数据集开源
计算机视觉·google·nvidia
OpenBayes贝式计算15 小时前
教程上新丨英伟达开源 LocateAnything,3B 模型可实现图像 + 视频的目标指向 / 开放词汇目标检测/指代表达定位 / OCR 文本定位等功能
计算机视觉·agent·nvidia
hans汉斯18 小时前
【计算机科学与应用】YOLO-Apple:一种用于苹果幼果检测的改进型目标检测方法
人工智能·yolo·目标检测·计算机视觉·目标跟踪·数据·病虫害检测
AI浩19 小时前
OpenCV 检测流程中损坏 JPEG 图片的定位与清理
人工智能·opencv·计算机视觉
春日见19 小时前
五分钟入门强化学习DDPG
大数据·人工智能·算法·机器学习·计算机视觉
weixin_407443871 天前
OCR材料信息提取工具(附件中含代码和数据)
人工智能·python·计算机视觉·ocr
搞科研的小刘选手1 天前
【重庆大学主办】第三届智能感知与模式识别国际学术会议(IPPR 2026)
物联网·机器学习·计算机视觉·机器人·人机交互·感知·传感