[英]opencv : Unable to read upper case letters through waitKey
我有一個簡單的開關盒,如下所示在無限循環中,根據用戶按下的鍵調用函數。 我正在使用 opencv 庫在 C++ 中編程。 下面使用的 waitKey 函數能夠讀取我在鍵盤上按下的小寫字母。 然而,我無法閱讀任何大寫字母,它仍然閱讀並將其解釋為相應的小寫字母。 在這方面的任何幫助表示贊賞。 我應該更新我的 opencv 庫嗎? 我在這篇文章的幫助下在 ubuntu 上安裝了 opencv
操作系統 UBUNTU 13.10 opencv 2.4.8 版
偽代碼
while(1)
{`
char k = waitKey(0);
switch(k) {
case 'a' : ... break;
case 'b' : ... break;
case 'A' : ... break; // UNABLE TO READ A here.
}
}
我在 OpenCV 論壇上發現了一個與您的問題相關的小提示,因為您還沒有找到它: http : //answers.opencv.org/question/4266/cvwaitkey-upper-lowercase-difference/
我有同樣的問題(使用 opencv-4.x)。 我認為這是因為我使用 cmake 選項-D WITH_QT=ON
(以啟用圖像的縮放滾動)編譯了 opencv。 但是 Qt 將 q 和 Q 解釋為相同的鍵碼(81); 唯一的事情是它添加了一個(移位)修飾符。
假設您在 C++/Qt 程序中收到一個QKeyEvent
事件。 然后你按下時得到:
似乎cv::waitKey
或cv::waitKeyEx
,當 opencv 使用 Qt 時,不讀取修飾符,只讀取關鍵代碼,不幸的是...
到目前為止,我發現的唯一選擇是使用-D WITH_QT=OFF
重新編譯。 然后我可以區分 Q 和 q(還有左箭頭和左移箭頭等等)。 但權衡是我不能再滾動圖像......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.