C++ 如何在OpenCV中读取文本并将其放入图像?

C++ 如何在OpenCV中读取文本并将其放入图像?,c++,opencv,gcc,input,output,C++,Opencv,Gcc,Input,Output,下面是在图像上方写文本的代码,但我正在寻找图像上方的输入输出操作。我希望该图像作为背景图像,用户输入输出的所有内容,如输入您的姓名(输出)和我的姓名是xyz(输入),都应在图像上方完成。在这里,我可以使用cvPutText()写入上述图像,但如何从用户处获取输入。欢迎提出任何意见或建议 int main( int argc, char** argv ) { IplImage* img = 0; img = cvLoadImage( "C:\\Dev-Cpp\\zzPograms\\cv\

下面是在图像上方写文本的代码,但我正在寻找图像上方的输入输出操作。我希望该图像作为背景图像,用户输入输出的所有内容,如
输入您的姓名
(输出)和
我的姓名是xyz
(输入),都应在图像上方完成。在这里,我可以使用
cvPutText()
写入上述图像,但如何从用户处获取输入。欢迎提出任何意见或建议

int main( int argc, char** argv )
{
  IplImage* img = 0;
  img = cvLoadImage( "C:\\Dev-Cpp\\zzPograms\\cv\\152.jpg" );
  cvNamedWindow( "152.jpg", CV_WND_PROP_ASPECTRATIO );
  CvFont *font= new CvFont;
  cvInitFont(font,CV_FONT_VECTOR0,2.0f,4.0f,2,2,2);
  char text[10]="aboveimg"; 
  cvPutText(img,text,Point(100,250),font,CV_RGB(255,6,6));  // Put text on image
                             //what to do here for taking input from user like cin ??
  cvShowImage( "152.jpg", img );
  cvWaitKey(0);
  cvReleaseImage( &img );
  cvDestroyWindow( "152.jpg" );
}

我不确定您是否希望在图像已显示时放入文本,或者您首先希望从用户处获取输入,然后将其放入图像中

第一种情况:

  • 要求用户输入字符串
  • 读那个字符串
  • 将其转换为字符数组
  • 将其放入字符文本[]
  • 其余的事情将保持不变
  • 第二种情况: 如果希望用户能够在图像上书写,请执行以下操作:

    while(1)
    {
        1. Read image
        2. char text[10];
        3. ask user to put the text
        4. read the text
        5. convert to the char form
        6. put the text on the image
        7. display the image
        8. waitKey(0);
    }
    
    这样,用户每次都会被问及他/她想在图像上显示的文本


    我不确定你是否真的在找它。这只是一个概念。

    你的问题不清楚。您是否希望用户能够将文本写入图像表面?这是不可能的。是的,我希望用户能够在图像的表面上写文本,请使用OpenCV的C++接口。和可能在将来被删除。不可能@uditr043。你可以做的是制作一个控制台应用程序,并在控制台上把用户的类型与图像一起回放到图像中,同时使用C++接口作为@ NILS。首先我要显示图像,然后第一个文本将显示在图像上“输入您的名字”,然后用户将输入他的名字在图像之上。我认为你的第二个案例是正确的,但需要修改,我会这样做:)@uditr043:是的,第二个案例会帮助你。它只是一个模板,因此,您需要根据需要修改它。如果对你有帮助,请投票/接受答案。你的个人资料图片是'lena.jpg',因此我认为你是opencv的专家。。是否有任何功能(与puttext相反)可以作为cin或scanf来检索用户在图像上方输入的数据?@uditr043:据我所知,没有这样的功能,但没有人是完美的。总有一些惊喜。如果你发现了,请让社区知道。是的,当然!我会找的。