在OpenCV中显示汉字(支持灰度和彩色图片)

来源:互联网 发布:什么是数据流程分析 编辑:程序博客网 时间:2024/06/06 04:07
【在OPENCV中输出汉字】
1- 参考资料:http://stackoverflow.com/questions/30782756/a-better-way-to-add-text-to-ca-cvmat-than-cvputtext
这个作者原本是俄罗斯人写的,但是程序存在BUG,我修改并完善了一下!
2- 依赖项:
1)从https://freetype.org官网的"FreeType Jam for Win32 and GNU/Linux"下载,
从定向为:https://sourceforge.net/projects/freetype/files/
2)下载ft271.zip (3.0 MB)后,启动工程“E:\freetype-2.7.1\builds\windows\vc2010\freetype.sln”编译静态库
3)头文件路径添加到opencv工程中:E:\freetype-2.7.1\include
4)链接库路径添加到opencv工程中:E:\freetype-2.7.1\objs\vc2010\Win32
5)在这个文件中已经指定了 #pragma comment(lib, "freetype271d.lib")
3- 两个全局变量需要在主程序main结构体中初始化:
FT_Library  usingTrueTypeLibrary;
FT_Face     usingTrueTypeFace;      
4- main中初始化代码:
FT_Error errorFT = FT_Init_FreeType( &usingTrueTypeLibrary );
errorFT = FT_New_Face( usingTrueTypeLibrary,"C:/Windows/Fonts/simhei.ttf",0,&usingTrueTypeFace );
errorFT = FT_Set_Pixel_Sizes(usingTrueTypeFace,16,0);
errorFT = FT_Select_Charmap(usingTrueTypeFace, FT_ENCODING_UNICODE);
5- 向图像矩阵输出汉字的实例(必须使用wstring,因为simhei.ttf是unicode编码):
std::wstring str= L"高斯滤波器\n";
PrintText(readImg, str,50,50,cv::Scalar(255,255,255));
5- 向图像矩阵输出汉字的实例(必须使用wstring,因为simhei.ttf是unicode编码):
程序中提供了一个ASNI字节转UNICODE字节的函数:Asni2Unicode_Append()


成都信息工程大学 杜鸿 duhong@cuit.edu.cn   转载时请注明出处! 2017年3月14日
0 0
原创粉丝点击