簡體   English   中英

OpenCV,在顯示圖像時讀取用戶文本輸入(使用waitKey)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM