使用cvPutText()

时间:2013-12-12 19:01:03

标签: c opencv raspberry-pi

我正在尝试在屏幕上打印文本,但我一直收到错误消息。

有人可以帮我处理代码吗?

cvNamedWindow("Result", CV_NORMAL);
cvMoveWindow("Result", 350,300);
cvRectangle(img, cvPoint(0,0), cvPoint(2600,2000),cvScalarAll(255), CV_FILLED,8,0);
cvShowImage("Result", img);
cvPutText(img, mytext,cvPoint(100,100),CV_FONT_HERSHEY_SIMPLEX,cvScalarAll(0));
cvWaitKey(0);

我得到的错误是

OpenCV Error: Assertion failed (text != 0 && _font != 0) in cvPutText, file /build/opencv-XZa2gn/opencv-2.3.1/modules/core/src/drawing.cpp, line 2375
terminate called after throwing an instance of 'cv::Exception'
  what():  /build/opencv-XZa2gn/opencv-2.3.1/modules/core/src/drawing.cpp:2375: error: (-215) text != 0 && _font != 0 in function cvPutText
Aborted

2 个答案:

答案 0 :(得分:3)

试试这个,这是一个有效的例子:

char text = 'World';

char buffer[25];
sprintf(buffer, "Hello  %c", text);
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5);
cvPutText(image, buffer, cvPoint(2, 2), &font, cvScalar(255));

答案 1 :(得分:1)

你将c-api中的定义与c ++中的定义混为一谈。

void cvPutText(CvArr * img,const char * text,CvPoint org,const CvFont * font,CvScalar color);

你需要打电话:

cvInitFont()

之前。