我想在窗口标题中添加中文文本,该标题由OpenCV的cvShowImage()函数调用。但是它不能给出正确的结果。

#include <iostream>
#include "opencv2/opencv.hpp"

using namespace cv;
using namespace std;

int main(int argc, const char * argv[])
{
  const char *pstrFilename = "EDF001.png";
  const char *pstrWindowTitle = "欢迎来到细胞图像处理的世界!";

  IplImage* img = cvLoadImage(pstrFilename, CV_LOAD_IMAGE_UNCHANGED);

  cvNamedWindow(pstrWindowTitle, CV_WINDOW_NORMAL);
  cvShowImage(pstrWindowTitle, img);

  cvWaitKey();

  cvDestroyWindow(pstrWindowTitle);
  cvReleaseImage(&img);

  return 0;
}

结果窗口:

最佳答案

我的原始评论是:

“如果标题使用英语/ ASCII名称,则可以正常工作吗?OpenCV可能无法为窗口标题处理非ASCII字符。”

但是另一种可能的解决方案是在 objective-c 和Cocoa框架中使用暴力破解方法,例如:

NSWindow * openCVWindow = [[NSApplication sharedApplication] mainWindow];
if(openCVWindow)
{
    [openCVWindow setTitle: @"欢迎来到细胞图像处理的世界!"];
} else {
    NSLog( @"openCV's window isn't considered a main window!");
}

09-26 16:17