利用OpenCV给图像添加中文标注

OpenCV不支持汉字输出,参考了网上的相关内容,将解决步骤简要记录如下:


1、从 http://download.savannah.gnu.org/releases/freetype/ 下载FreeType库,windows下,根据自己用的编译器版本,打开相应的工程文件。比如,我用的VS2008,则打开目录 \builds\win32\vc2008 下的工程文件,编译成功,关闭工程退出。


2、编译成功后,在工具->选项->C++目录中添加freetype下的include文件夹以及lib文件夹,将objs\win32\vc2008中的库文件添加到当前工程的附加依赖项中。


3、参考opencv中文论坛这篇帖子: http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=2083&hilit=汉字 直接copy前两个源码文件,保存为CvxText.h和CvxText.cpp,分别添加到当前工程中。


4、接下来就可以直接调用函数了,最简单的例子:
       IplImage *img = cvLoadImage("test.jpg", 1);
 
       CvText text("simsun.ttf");//这个是系统自带的宋体字体文件,可以选别的
 
       const char *msg = "汉字";
 
       float p = 0.5;
       text.setFont(NULL, NULL, NULL, &p);   // 透明处理(第二个参数可以设置字体大小旋转等)
 
       text.putText(img, msg, cvPoint(100, 150), CV_RGB(255,0,0));


这样就可以往图像test.jpg中坐标为(100,150)的位置添加红色的“汉字”二字啦。

你可能感兴趣的:(OpenCV)