我正在使用上面提到的兩個OpenCV函數從我的攝像頭中檢索幀。沒有額外的屬性設置,只是使用默認參數運行。cvCaptureFromCAM()/ cvQueryFrame():禁用自動圖像校正?
在讀取循環中的幀時,我可以看到圖像發生變化,亮度和對比度似乎會自動調整。它絕對是一個OpenCV的操作,因爲攝像頭捕獲的圖像不會被改變並且不斷點亮。
那麼如何禁用這種自動更正?我找不到能夠完成這項工作的財產。
我正在使用上面提到的兩個OpenCV函數從我的攝像頭中檢索幀。沒有額外的屬性設置,只是使用默認參數運行。cvCaptureFromCAM()/ cvQueryFrame():禁用自動圖像校正?
在讀取循環中的幀時,我可以看到圖像發生變化,亮度和對比度似乎會自動調整。它絕對是一個OpenCV的操作,因爲攝像頭捕獲的圖像不會被改變並且不斷點亮。
那麼如何禁用這種自動更正?我找不到能夠完成這項工作的財產。
爲了回答我自己的問題:OpenCV很麻煩或者過時了。
總結:我不推薦使用OpenCV進行更多增強圖像捕捉。
你應該嘗試玩弄這三個參數:
圖像(僅適用於攝像機)的CV_CAP_PROP_BRIGHTNESS亮度的圖像 CV_CAP_PROP_CONTRAST對比度(僅適用於攝像機)的圖像 CV_CAP_PROP_SATURATION飽和度(僅對於相機)
嘗試將它們全部設置爲50.此外(如果它不會幫助)嘗試更改另一個攝像頭捕獲參數從documentation。
這引發了另一個問題,我從來沒有找到一個解決方案:什麼是這些值的有效範圍? 0..100? – Elmi
從opencv源碼(linux)我發現默認的範圍值是[0..255]。但是在設置參數之前,他們從攝像頭驅動程序獲得這個範圍 - 所以它取決於您的環境。你嘗試過哪些參數? – ArtemStorozhuk
我試圖爲這些屬性設置50,5和1 - 但都導致了太明亮的圖像,完全無法使用。所以我決定讓相機進行自動校正,然後執行我自己的亮度/飽和度/伽瑪/ RGB校正。與CV_CAP_PROP_FRAME_WIDTH/_HEIGHT同樣的情況,我設置了1280x960相機的原始分辨率,但仍然只能獲得640x480的圖像。所以這似乎並不像預期的那樣至少在v4l中起作用。 – Elmi