首页 > 解决方案 > OpenCV Freetype2 getTextSize 总是返回 1 高度

问题描述

我正在尝试使用 OpenCV 在 NanoPi NEO 上生成图像。目前使用 Armbian 仿生和 OpenCV 4.3.0(从带有 freetype2 模块的源代码构建)。问题是 Freetype2::getTextSize() 方法总是返回 1 作为文本高度。但是宽度似乎计算得很好。在台式电脑上,相同的代码可以按预期工作。

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/freetype.hpp>

int main() {
    cv::Ptr<cv::freetype::FreeType2> ft2;
    int baseline = 0;

    ft2 = cv::freetype::createFreeType2();
    ft2->setSplitNumber( 8 );
    ft2->loadFontData("../gobold.ttf", 0);

    cv::Size textSize = ft2->getTextSize("asdfg", 20, -1, &baseline);
    std::cout << "Height = " << textSize.height << " Width = " << textSize.width << std::endl;
    return 0;
}

此代码在 Raspberry 上返回“Height = 1 Width = 49”,在具有相同 .ttf 文件的桌面上返回“Height = 18 Width = 49”。

标签: c++linuxopencvraspberry-pi

解决方案


推荐阅读