opencv+freetype

    OpenCV版本一直在更新,但至今依然没有往图像中添加中文注释的功能函数,本文基于freetype和OpenCV向读者推荐一种图像写入中文的方法。
一、下载freetype库并配置
1、从 http://download.savannah.gnu.org/releases/freetype/ 下载freetype库。例如下载freetype-2.7.tar.gz文件,在windows下解压压缩文件(如图1)。打开目录builds\windows,选择合适的VS版本,本文选择VS2010下的工程文件,并编译生成相关lib文件(debug、release, win32、×64)。

图1

2、编译成功后,在工具->选项->C++目录中添加freetype下的include文件夹;在链接器->附加库依赖项添加lib文件路径objs\vc2010\Win32;在链接器->输入->附加依赖项中添加相应的freetype27.lib或freetype27d.lib文件。
3、将CvxText.h和CvxText.cpp(https://www.oschina.net/code/snippet_1447359_36028或http://download.csdn.net/detail/jacky_ponder/9680241),分别添加到当前工程中。

二、示例
4、接下来就可以直接调用函数了,最简单的例子,其结果如图2所示:


#pragma once 
#include "opencv2/opencv.hpp"
#include "CvxText.h" 
using namespace cv;
 
int main(int argc, char *argv[])
{
Mat img = imread("lena.jpg", 0);
CvxText text("msyh.ttf");	//载入希望输入的字体,可在目录C:\WINDOWS\Fonts中选择相应字体文件,并复制到工程下。
 
Scalar size(15, 0.5, 0.1, 0);	//设置字体的大小/空白比例/间隔比较/旋转角度
float p = 1.f; //设置字体的透明度
const char *msg = "@OpenCV中文输出测试!";
 
text.setFont(NULL, &size, NULL, &p);
text.putText(img, msg, Point(140, 250), CV_RGB(0,255,0));
 
imwrite("1.bmp", img);
 
return 0;

图2

如果报错:由于无法找打freetype.dll,无法继续执行 这样的错误,请将freetype路径下objs下刚才用VS编译生成的freetype.dll放在刚才创建的VS工程下,比如x64/Release/下

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SunnyFish-ty

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

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

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

打赏作者

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

抵扣说明:

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

余额充值