我正在使用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);
可能是什么问题? 谢谢!
答案 0 :(得分:0)
你确定你没有对字符串做任何其他事吗? 你的代码似乎运行得很好:
这是我运行的完整代码:
#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的实际库。
我希望这有助于其他人遇到同样的问题。