vs2008实现opencv显示中文汉字

几天前帮人做一个dll程序时需要用opencv在摄像头捕获的视频上显示汉字,于是在网上搜索了下,发现opencv自带的函数不能够实现汉字显示,只能显示英文。后来,在opencv中文论坛上看见了一篇帖子(http://www.opencv.org.cn/forum/viewtopic.php?t=2083),下载后实验发现,在vs6.0上面可以使用,在vs2008上出现了问题。当时没有时间仔细研究,就用英文代替了。

这几天,总感觉心理有个疙瘩,在晚上查询了许久,通过慢慢的摸索终于实现了在vs2008上opencv显示汉字输出。

好了,废话不多说了。首先,我们需要用对FreeType进行重新编译,我有一份编译好的可以再vs2008上面使用的FreeType,可以在这个链接下载:http://download.csdn.net/detail/connor_lele/4571660。当然,大家也可以自己下载一个重新进行编译,具体方法就不在说了。

 接着,我们需要上述论坛http://www.opencv.org.cn/forum/viewtopic.php?t=2083中现在CvxText类,将它们添加到自己新建的工程中去。

然后,我们在自己的工程中包含FreeType的相关文件,具体方法也见上述论坛。

通过,上述操作我实现了用opencv显示中文汉字的操作。

配置的一些图片如下:

       图(a) vs2008的include配置

 

     

 

     

      图(b) vs2008的库文件配置

     


其中,lib的路径为FreeType的路径。

 

     图(c) vs2008链接库输入的配置







由于,我们在附加项中已经包含了freetype244MT.lib文件,所以需要将这句话给注释掉。

其中,主程序的代码如下:

  CvxText text("STHUPO.TTF");
  const char *msg = "在OpenCV中输出汉字!";

  float p = 0.5;
  text.setFont(NULL, NULL, NULL, &p);

  CvCapture *pCapture = cvCreateCameraCapture(0);
  cvNamedWindow("Camera");
  IplImage *pFrame = cvQueryFrame(pCapture);
  while(1)
  {
   pFrame = cvQueryFrame(pCapture);
   text.putText(pFrame, msg, cvPoint(100, 150), CV_RGB(255,0,0));
   cvShowImage("Camera",pFrame);
   char cc = cvWaitKey(30);
   if(cc == 27)
    break;
  }
  cvDestroyWindow("Camera");
  cvReleaseCapture(&pCapture);

你可能感兴趣的:(c,null,dll,include,float)