環境:Qt5.9.8 + OpenCV3.4.2
問題:電腦可能有多個USB攝像頭(最近常見的就是筆記本電腦一個內置攝像頭+USB攝像頭)。需要對USB攝像頭進行引數設定、然后對視頻進行截圖,碰到幾個問題,請教一下各位:
1、如何確定攝像頭的device_index,以便 VideoCapture::open(int device_index) 時能正確確定是哪個攝像頭?
查了不少資料,似乎沒有發現opencv中有直接查找系統攝像頭資訊的函式。有采用windows系統呼叫的方法獲得攝像頭資訊的,試了一下沒成功。目前我采用的是Qt中QCameraInfo獲得可用攝像頭資訊,不過采用QCameraInfo獲取資訊,需首先start() camera
2、如何方便的設定攝像頭的引數
OpenCV中的VideoCapture.set() 可以設定攝像頭的引數,可設定的引數較全(亮度,對比度等都可設定)。Qt的QCameraViewfinderSettings 一般設定最多的是解析度,幀率。亮度、對比度...視乎不能設定。我目前采用VideoCapture.set() 來設定
3、從視頻截圖,QCaptureImage默認會在桌面\庫\圖片目錄下保存被截的圖片
OpenCV 和QCamera都能截圖。不過QCaptureImage默認會在桌面\庫\圖片目錄下保存一份被截的圖片,暫未找到禁止默認保存的解決辦法。而OpenCV截圖不會默認保存
通過上面的對比,暫無較好的方法識別攝像圖和截圖。目前準備 1) 程式啟動時用 QCameraInfo 獲得可用攝像頭資訊 2)新開一個執行緒,用定時器,通過QCameraInfo 檢查是否有攝像頭更新(插拔)。這一步也可用系統訊息 3)截圖用OpevCV
是否還有更優的辦法?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/18793.html
標籤:Qt
上一篇:怎么監聽別人app進入后臺的時間
