[英]OpenCV, reading user text input while an image is being displayed (using waitKey)
我在使用OpenCV時嘗試獲取一些用戶文本輸入有點困難。
我開發了一個迭代程序,它打開一個圖像,檢測顏色並使用標准cv::imshow()
和強制waitKey()
顯示它們。 在此狀態下,按任意鍵應該只處理並顯示下一個圖像。
問題是我想讓用戶可選擇點擊顯示的圖像並輸入一些文本數據。 我試圖使用cin >> mystring
但它看起來像waitKey()
阻塞控制台,所以我輸入的任何內容都顯示但不是由cin
作為輸入UNTIL,waitKey結束。 這是一個問題,因為有時我想為每個圖像輸入多個文本輸入,所以在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;
}
如果我直接點擊一個鍵,最后一個顯示語句顯示“空”。 如果我先點擊圖像,返回控制台並輸入內容,返回圖像窗口,然后點擊一個鍵,我得到的是我輸入的字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.