我有一个问题如下:
我想在图像上打印变量,我知道在OpneCV中有一个函数putText,但是这个函数只能打印我在开头设置的文本。我要打印的内容如下:
Mat img;
for(int i=0; i<=10; i++)
{
imshow("IMG",img);
}
我想在图像“img”上打印每个i值,这意味着img需要显示i从0到10。 是否有任何功能可以在图像上打印变量而不是设置字?
答案 0 :(得分:2)
documentation为您提供了一个广泛的示例:
string text = "Funny text inside the box";
int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX;
double fontScale = 2;
int thickness = 3;
Mat img(600, 800, CV_8UC3, Scalar::all(0));
int baseline=0;
Size textSize = getTextSize(text, fontFace,
fontScale, thickness, &baseline);
baseline += thickness;
// center the text
Point textOrg((img.cols - textSize.width)/2,
(img.rows + textSize.height)/2);
// draw the box
rectangle(img, textOrg + Point(0, baseline),
textOrg + Point(textSize.width, -textSize.height),
Scalar(0,0,255));
// ... and the baseline first
line(img, textOrg + Point(0, thickness),
textOrg + Point(textSize.width, thickness),
Scalar(0, 0, 255));
// then put the text itself
putText(img, text, textOrg, fontFace, fontScale,
Scalar::all(255), thickness, 8);
要做的步骤:基本上使用putText
答案 1 :(得分:0)
#include <stdio.h>
int your_variable=6;
Mat img=your_image;
/*Your code here*/
char no[5];
sprintf(no,"Variable = %d",your_variable);
putText(img,no,Point(10,30),FONT_HERSHEY_TRIPLEX,1,Scalar(255,255,255),1);
imshow("with variable",img);