错误的cv :: putText结果

时间:2013-02-27 13:28:15

标签: c++ opencv

我正在使用openCV用cv :: putText在框架(cv :: Mat)上绘制一些文本。 但是,输出会显示4?=,?,等(更改每次运行)而不是"Funny text inside the box"

我的(简体)代码:

Mat image = Mat::zeros(imgH,imgW, CV_8UC1);
int fontFace = FONT_HERSHEY_COMPLEX_SMALL;
double fontScale = 1.5;
int thickness = 2;
Point textOrg(imgW/5, imgH/1.2);
string someText = "Funny text inside the box";
putText(image, someText, textOrg, fontFace, fontScale, Scalar::all(255), thickness, 8);

可能是什么问题? 谢谢!

2 个答案:

答案 0 :(得分:0)

你确定你没有对字符串做任何其他事吗? 你的代码似乎运行得很好:

cv::putText

这是我运行的完整代码:

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;

int main()
{
    int imgW = 650;
    int imgH = 50;

    Mat image = Mat::zeros(imgH,imgW, CV_8UC1);
    int fontFace = FONT_HERSHEY_COMPLEX_SMALL;
    double fontScale = 1.5;
    int thickness = 2;
    Point textOrg(imgW/5, imgH/1.2);
    string someText = "Funny text inside the box";
    putText(image, someText, textOrg, fontFace, fontScale, Scalar::all(255), thickness,8);

    for(;;){
        imshow("text",image);
        if(waitKey(30) > 0) break;
    }

    return 0;
}

答案 1 :(得分:0)

好吧我遇到了同样的问题并最终解决了OpenCV库版本2.4.9.0 rev 1.以下细节适用于Android原生活动,但任何平台的一般想法都是一样的。

对于Android: 我首先在 Android.mk 中添加了“OPENCV_LIB_TYPE:=STATIC”以尝试静态链接库。链接器给出了一堆关于 - 还有什么 - std :: string的错误。然后我碰巧注意到 Application.mk 中有一行“APP_STL := stlport_static”。我不知道它是如何实现的,但我将其更改为“APP_STL := gnustl_static”,一切正常。

通常:尝试静态链接到OpenCV库以暴露错误。然后,您可以跟踪并修复包含的不匹配以及用于STL的实际库。

我希望这有助于其他人遇到同样的问题。