OpenCV实现在图像中写入汉字

本文介绍了如何在Windows 7 64位环境下,利用VS2008和OpenCV 2.3.1实现向图像中写入中文汉字。详细步骤包括工程配置、字体文件和额外库的添加,以及编译设置的调整。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

由于OpenCV自带的cvInitFont和cvPutText函数不支持向图像中写入中文,参考http://www.opencv.org.cn/forum/viewtopic.php?t=2083 中的方法,在windows7 64位机上用vs2008+OpenCV2.3.1实现具体步骤如下:

 

1、新建一个控制台工程Test,先按照 http://blog.csdn.net/fengbingchun/article/details/7288079 中步骤配置;

2、将C:\WINDOWS\Fonts\simhei.ttf文件和CvxText.h、CvxText.cpp文件复制到工程Test文件夹下,并添加到Test工程中;

3、将CvxText.h中的#include<cv.h> #include <highgui.h>用#include<opnecv2/opencv.hpp>替代;

4、在CvxText.cpp文件首行添加#include”stdafx.h”,在函数setFont末尾加入FT_Set_Pixel_Sizes(m_face, (int)m_fontSize.val[0], 0)语句;

5、将include和lib两个文件夹放到D:\soft\OpenCV2.3.1\FreeType文件夹下;

6、Tool-->Options-->VC++ Directories:选择Include files:D:\soft\OpenCV2.3.1\FreeType\include;选择Library files:D:\soft\OpenCV2.3.1\FreeType\lib;

7、打开Property ,在Release和Debug下分别Linker-->Input-->Additional Dependencies添加freetype235.lib;

8、将原main.cpp文件内容复制到Test.cpp中,将#include<cv.h> #include <highgui.h>用#include<opnecv2/opencv.hpp>替代,将图像lena.jpg复制到工程Test文件夹下,编译运行即可。

CvxText.h:

//====================================================================//====================================================================//// 文件: CvxText.h//// 说明: OpenCV汉字输出//// 时间: //// 作者: chaishushan#gmail.com////====================================================================//====================================================================#ifndef OPENCV_CVX_TEXT_2007_08_31_H#define OPENCV_CVX_TEXT_2007_08_31_H/*** \file CvxText.h* \brief OpenCV汉字输出接口** 实现了汉字输出功能。*/#include <ft2build.h>#include FT_FREETYPE_H#include <cv.h>#include <highgui.h>/*** \class CvxText* \brief OpenCV中输出汉字** OpenCV中输出汉字。字库提取采用了开源的FreeFype库。由于FreeFype是* GPL版权发布的库,和OpenCV版权并不一致,因此目前还没有合并到OpenCV* 扩展库中。** 显示汉字的时候需要一个汉字字库文件,字库文件系统一般都自带了。* 这里采用的是一个开源的字库:“文泉驿正黑体”。** 关于"OpenCV扩展库"的细节请访问* http://code.google.com/p/opencv-extension-library/** 关于FreeType的细节请访问* http://www.freetype.org/** 例子:** \codeint main(int argc, char *argv[]){   // 定义CvxApplication对象   CvxApplication app(argc, argv);   // 打开一个影象   IplImage *img = cvLoadImage("test.jpg", 1);   // 输出汉字   {      // "wqy-zenhei.ttf"为文泉驿正黑体      CvText text("wqy-zenhei.ttf");      const char *msg = "在OpenCV中输出汉字!";      float p = 0.5;      text.setFont(NULL, NULL, NULL, &p);   // 透明处理      text.putText(img, msg, cvPoint(100, 150), CV_RGB(255,0,0));   }   // 定义窗口,并显示影象   CvxWindow myWin("myWin");   myWin.showImage(img);   // 进入消息循环   return app.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值