分享一下我老师大神的人工智能教程!零基础,通俗易懂!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.