OpenCV,在显示图像时读取用户文本输入(使用 waitKey)
OpenCV, reading user text input while an image is being displayed (using waitKey)
在使用OpenCV时,我试图获取一些用户文本输入有点困难。
我开发了一个迭代程序,该程序打开图像,检测颜色并使用标准cv::imshow()
显示它们,然后是强制性waitKey()
。在此状态下,按任意键应仅处理并显示下一个图像。
问题是我想允许用户选择性地单击显示的图像并输入一些文本数据。我尝试使用cin >> mystring
但看起来waitKey()
阻塞了控制台,因此显示我键入的任何内容,但在等待键结束之前,cin
不会将其作为输入。这是一个问题,因为有时我想为每个图像获取多个文本输入,因此能够在waitKey工作时正常使用控制台和cin会很好。
¿关于如何允许用户在显示图像时输入文本的任何想法?解决我的问题会很好,但也欢迎任何其他想法或解决方法。
泰!
我知道你可能做错了什么 - 如果你也发布了你的代码,那就太好了(对于其他人登陆这里)。
就像我建议的那样,您可以设置鼠标回调并获取该函数中的字符串。这对我来说足够公平:
std::string s("empty");
void on_mouse_click( int event, int x, int y, int, void* )
{
if( event == EVENT_LBUTTONDOWN ) //are you missing this?
{
std::cout<<"enter string: ";
std::cin>>s;
}
}
int main()
{
:
:
cv::imshow( "images", frame );
cv::waitKey();
std::cout<<s;
return 1;
}
如果我直接按一个键,最后一个显示语句将显示"空"。如果我先单击图像,返回控制台并键入内容,返回图像窗口然后按键,我会得到我输入的字符串。
相关文章:
- 如何使输入文本文件成为构造函数参数?c++
- 用C++计算输入文本的新行数
- 是否有任何方法可以在用户输入文本时读取字符
- C++程序 - 输入文本流
- 在输出输入文本时对齐输入的文本
- 根据输入文本对单词进行排序,具体取决于重复多少次
- 查找字符在标准输入文本中出现的次数
- 将不同长度的cstrings从输入文本文件读取到链接列表中
- C++交叉编译不处理换行输入文本文件
- 要求用户在C++中创建文本文件时输入文本文件(ASCII)名称
- 如何使用字符串操作来获取输入文本文件的某些部分
- 如何使用 WxWebView 在网页表单字段中输入文本
- 为什么 fstream::tellg() 返回值会因输入文本文件中的换行符数而增大,当文件针对 Windows (r
- 匹配输入文本中的平衡大括号和嵌套大括号
- 使用 OpenCV 显示图像,并在C++中的特定点上输入文本
- (Qt)可编辑的Q组合框:don't在输入文本时关闭弹出窗口
- 如何从文件的输入文本中消除字符/整数
- 大型输入文本文件,每行有两个数字,如何更快地输入
- 重新输入文本到字符串
- 我如何运行GDB,在命令行中输入文本并查看可执行文件如何处理这些条目