OpenCV putText是UTF-8字符

时间:2013-03-20 09:13:00

标签: opencv utf-8 ascii

是否有人可以替代OpenCV putText(支持UTF-8字符)?如上所述,putText仅适用于ASCII字符,但不适用于UTF-8,例如šŠčČžŽ

2 个答案:

答案 0 :(得分:3)

如果使用Qt支持构建 OpenCV ,您可以使用cv::addText()来编写该字符串:

cv::Mat img = cv::imread("C:\\snowflake.jpg");
if (img.empty())
{
    std::cout << "!!! Failed imread()" << std::endl;
    return;
}

cv::addText(img, "áéőúöüóí", cv::Point(100, 50), cv::fontQt("Times"));

但是,如果OpenCV构建没有Qt支持,则调用cv::addText()会使应用程序崩溃,并且以下错误将打印到控制台:

OpenCV Error: The function/feature is not implemented (The library is compiled without QT support) in cv::fontQt, file C:\builds\2_4_PackSlave-win32-vc12-shared\opencv\modules\highgui\src\window.cpp, line 409

答案 1 :(得分:2)

您没有指定使用的语言。从Python我将使用PIL的文本绘图功能:

draw.text((0, 0), unicode("áéőúöüóí","utf-8"), font=font, fill=(255,255,255))