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

本文介绍了如何利用OpenCV结合FreeType库在Windows环境下为图像添加中文标注。首先,需要下载并编译FreeType库,然后在工程中添加相关目录和库文件。接着,引入CvxText类的源码文件,并通过示例代码展示如何在图像上添加中文文字。
摘要由CSDN通过智能技术生成

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

参考:
http://blog.sina.com.cn/s/blog_6bbd2dd101012dbh.html  和
https://blog.csdn.net/ubunfans/article/details/45719009

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);      
       CvxText 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)的位置添加红色的“汉字”二字啦。

//-----------------------------------------------------------------------------
注意:需要显示的图片一定是IplImage的 下面是Opencv Mat与Iplimage的相互转换:
1、将Mat转换为IplImage
//! converts header to IplImage; no data is copied
    operator IplImage() const;
举例:Mat img;
            IplImage *src;
             src=&IplImage(img);


2、将IplImage转换为Mat
//! converts old-style IplImage to the new matrix; the data is not copied by default
    Mat(const IplImage* img, bool copyData=false);
//-----------------------------------------------------------------------------------------------
CvxText.h 代码:
// CvxText.h
#ifndef OPENCV_CVX_TEXT_2007_08_31_H
#define OPENCV_CVX_TEXT_2007_08_31_H
#include <ft2build.h>
#include FT_FREETYPE_H
#include<opencv.hpp>
 
class CvxText  
{
   CvxText& operator=(const CvxText&);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值