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汉字的坑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/524887.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

说说虚拟化上部署Oracle RAC的那点注意事项

0.概述 目前在虚拟化上部署RAC主要是以下3个场景 1是VMWARE的虚拟化&#xff08;私有云&#xff09;&#xff1b; 2是国产厂商基于KVM的虚拟化&#xff08;私有云&#xff09;&#xff1b; 3是公有云&#xff0c;由云厂商给你提供虚拟主机和虚拟磁盘。 这里我只对前2个熟悉一些…

政安晨:【Keras机器学习实践要点】(二十)—— 使用现代 MLP 模型进行图像分类

目录 简介 设置 准备数据 配置超参数 建立分类模型 定义实验 使用数据增强 将补丁提取作为一个图层来实施 将位置嵌入作为一个图层来实施 MLP 混频器模型 FNet 模式 gMLP 模式 实施 gMLP 模块 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐…

移动平台相关(安卓)

目录 安卓开发 Unity打包安卓 ​编辑​编辑 BuildSettings PlayerSettings OtherSettings 身份证明 配置 脚本编译 优化 PublishingSettings 调试 ReMote Android Logcat AndroidStudio的调试 Java语法 ​编辑​编辑​编辑 变量 运算符 ​编辑​编辑​编辑​…

基于JSP SSM的社区生活超市管理系统

目录 背景 技术简介 系统简介 界面预览 背景 随着时代步伐的加速&#xff0c;计算机技术已广泛而深刻地渗透到社会的各个层面。随着居民生活水平的持续提升&#xff0c;人们对社区生活超市的期望和管理要求也越来越高。随着社区生活超市数量的稳步增长&#xff0c;开发一个…

162 Linux C++ 通讯架构实战16,UDP/TCP协议的优缺点,使用环境对比。UDP 服务器开发

UDP/TCP协议的优缺点 TCP :面向连接的&#xff0c;可靠数据包传输。对于不稳定的网络层&#xff0c;采取完全弥补的通信方式。丢包重传 优点&#xff1a;稳定&#xff0c;数据流量稳定&#xff0c;速度稳定&#xff0c;顺序稳定 缺点&#xff1a;传输速度慢&…

【C语言】_文件类型,结束判定与文件缓冲区

目录 1. 文本文件和二进制文件 2. 文件读取结束的判定 3. 文件缓冲区 1. 文本文件和二进制文件 根据数据的组织形式&#xff0c;数据文件被称为文本文件或二进制文件&#xff1b; 数据在内存中以二进制的形式存储&#xff0c;如果不加转换地输出到外存&#xff0c;就是二进…

2024年最新版本的开源TwoNav网址导航系统源码 免授权

TwoNav 是一款新鲜发布的开源解密版书签&#xff08;导航&#xff09;管理程序。该程序采用PHP SQLite 3进行开发&#xff0c;具有界面简洁、安装简单、使用方便等特点&#xff0c;基础功能免费提供。TwoNav可以帮助用户集中管理浏览器书签&#xff0c;解决跨设备、跨平台和跨…

Text-Driven Object Detection 关于结合文本的目标检测

1、简单介绍 首先说明&#xff0c;本文目的主要是水一篇CSDN博客&#xff0c;顺便说一下和标题相关的认识。 近几年&#xff0c;在目标检测领域关于多模态的目标检测工作已成了主流&#xff0c;趋势仍在延续&#xff0c;未来仍有很大挖掘空间。这里说的多模态不是简单的多源数…

03-JAVA设计模式-建造者模式

建造者模式 什么是建造者模式 建造者模式&#xff08;Builder Pattern&#xff09;是一种对象构建的设计模式&#xff0c;它允许你通过一步一步地构建一个复杂对象&#xff0c;来隐藏复杂对象的创建细节。 这种模式将一个复杂对象的构建过程与其表示过程分离&#xff0c;使得…

Linux 线程:使用管理线程、多线程、分离线程

目录 一、使用线程 1、pthread_create创建线程 2、pthread_join等待线程 主线程获取新线程退出结果 获取新线程退出返回的数组 3、线程异常导致进程终止 4、pthread_exit 5、pthread_cancel 6、主线程可以取消新线程&#xff0c;新线程可以取消主线程吗 二、如何管理线…

vivado中移位寄存器的优化(二)

移位寄存器优化用于改善移位寄存器单元&#xff08;SRLs&#xff09;与其他逻辑单元之间的负裕量路径的时序。如果存在对移位寄存器单元&#xff08;SRL16E或SRLC32E&#xff09;的时序违规&#xff0c;优化会从SRL寄存器链的开始或结束位置提取一个寄存器&#xff0c;并将其放…

linux学习:gcc编译

编译.c gcc hello.c -o hello 用gcc 这个工具编译 hello.c&#xff0c;并且使之生成一个二进制文件 hello。 其中 –o 的意义是 output&#xff0c;指明要生成的文件的名称&#xff0c;如果不写 –o hello 的话会生成默 认的一个 a.out 文件 获得 C 源程序经过预处理之后的文…

【深度学习】StableDiffusion的组件解析,运行一些基础组件效果

文章目录 前言vaeclipUNetunet训练帮助、问询 前言 看了篇文&#xff1a; https://zhuanlan.zhihu.com/p/617134893 运行一些组件试试效果。 vae 代码&#xff1a; import torch from diffusers import AutoencoderKL import numpy as np from PIL import Image# 加载模型…

【Redis 知识储备】读写分离/主从分离架构 -- 分布系统的演进(4)

读写分离/主从分离架构 简介出现原因架构工作原理技术案例架构优缺点 简介 将数据库读写操作分散到不同的节点上, 数据库服务器搭建主从集群, 一主一从, 一主多从都可以, 数据库主机负责写操作, 从机只负责读操作 出现原因 数据库成为瓶颈, 而互联网应用一般读多写少, 数据库…

zdpdjango_argonadmin Django后台管理系统中的常见功能开发

效果预览 首先&#xff0c;看一下这个项目最开始的样子&#xff1a; 左侧优化 将左侧优化为下面的样子&#xff1a; 代码位置&#xff1a; 代码如下&#xff1a; {% load i18n static admin_argon %}<aside class"sidenav bg-white navbar navbar-vertical na…

SpringCloud Alibaba Sentinel 创建流控规则

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十四篇&#xff0c;即介绍 SpringCloud Alibaba Sentinel 创建流控规则。 二、基本介绍 我们在 senti…

Golang | Leetcode Golang题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; func threeSumClosest(nums []int, target int) int {sort.Ints(nums)var (n len(nums)best math.MaxInt32)// 根据差值的绝对值来更新答案update : func(cur int) {if abs(cur - target) < abs(best - target) {best cur}}// 枚举 a…

2024/4/1—力扣—最小高度树

代码实现&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ struct TreeNode* buildTree(int *nums, int l, int r) {if (l > r) {return NULL; // 递归出口}struct…

加州大学欧文分校英语基础语法专项课程01:Word Forms and Simple Present Tense 学习笔记

Word Forms and Simple Present Tense Course Certificate 本文是学习Coursera上 Word Forms and Simple Present Tense 这门课程的学习笔记。 文章目录 Word Forms and Simple Present TenseWeek 01: Introduction & BE VerbLearning Objectives Word FormsWord Forms (P…

云原生安全当前的挑战与解决办法

云原生安全作为一种新兴的安全理念&#xff0c;不仅解决云计算普及带来的安全问题&#xff0c;更强调以原生的思维构建云上安全建设、部署与应用&#xff0c;推动安全与云计算深度融合。所以现在云原生安全在云安全领域越来受到重视&#xff0c;云安全厂商在这块的投入也是越来…