C++ 使用putText和FreeFontStyle在opencv中绘制希腊符号

C++ 使用putText和FreeFontStyle在opencv中绘制希腊符号,c++,opencv,unicode,special-characters,freetype,C++,Opencv,Unicode,Special Characters,Freetype,在Python语言中,我看到了以下问题:如何编写Opencv中的putText函数中使用的Hershey字体样式不支持的特殊字符:如何和 我想使用UTF-8字符串绘制希腊字母,类使用putText。第二个链接有点像我想要的,但我看到它也使用了PIL选项,但我没有使用Python。谢谢 正如中提到的@berak,使用putText()是不可能的。它只支持ascii子集 但是,如果您安装了opencv并带有-D和_QT=ON,则可以使用 以下是带有希腊字母和结果的简单代码: #包括 #包括 使用名

在Python语言中,我看到了以下问题:如何编写Opencv中的
putText
函数中使用的Hershey字体样式不支持的特殊字符:如何和

我想使用UTF-8字符串绘制希腊字母,类使用
putText
。第二个链接有点像我想要的,但我看到它也使用了PIL选项,但我没有使用Python。谢谢

正如中提到的@berak,使用
putText()
是不可能的。它只支持ascii子集

但是,如果您安装了opencv并带有
-D和_QT=ON,则可以使用

以下是带有希腊字母和结果的简单代码:

#包括
#包括
使用名称空间std;
使用名称空间cv;
int main()
{
Mat img=Mat::零(尺寸(10001000),CV_8UC3);
namedWindow(“窗口”,0);
cv::addText(img,“希腊字母:”,cv::Point(50100),“Times”,30,标量(0255255),QT字体正常,QT样式正常);
cv::addText(img,“alpha:α”,cv::Point(50200),“Times”,30,标量(0255255),QT字体正常,QT样式正常);
cv::addText(img,“betta:β”,cv::Point(50300),“Times”,30,标量(0255255),QT字体正常,QT样式正常);
cv::addText(img,“gamma:γ”,cv::Point(50400),“Times”,30,标量(0255255),QT字体正常,QT样式正常);
cv::addText(img,“delta:δ”,cv::Point(50500),“Times”,30,标量(0255255),QT字体正常,QT样式正常);
cv::addText(img,“ε:ε”,cv::Point(50600),“Times”,30,标量(0255255),字体粗体,样式正常);
imshow(“窗口”,img);
等待键(0);
返回0;
}

很高兴知道!我将检查如何在启用“with_QT”的情况下重新构建我的opencv。我当时看到它是默认设置的。我怎么能一直没有Qt功能呢!?如果我失败了,我将简单地添加我想要的等式作为图像。
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
    Mat img = Mat::zeros(Size(1000,1000),CV_8UC3);


    namedWindow("Window",0);
    cv::addText(img, "Greek Letters: ", cv::Point(50, 100), "Times",30,Scalar(0,255,255),QT_FONT_NORMAL,QT_STYLE_NORMAL);
    cv::addText(img, "alpha: α", cv::Point(50, 200), "Times",30,Scalar(0,255,255),QT_FONT_NORMAL,QT_STYLE_NORMAL);
    cv::addText(img, "betta: β", cv::Point(50, 300), "Times",30,Scalar(0,255,255),QT_FONT_NORMAL,QT_STYLE_NORMAL);
    cv::addText(img, "gamma: γ", cv::Point(50, 400), "Times",30,Scalar(0,255,255),QT_FONT_NORMAL,QT_STYLE_NORMAL);
    cv::addText(img, "delta: δ", cv::Point(50, 500), "Times",30,Scalar(0,255,255),QT_FONT_NORMAL,QT_STYLE_NORMAL);
    cv::addText(img, "epsilon: ε", cv::Point(50, 600), "Times",30,Scalar(0,255,255),QT_FONT_BOLD,QT_STYLE_NORMAL);


    imshow("Window",img);

    waitKey(0);

    return 0;
}