2012-06-04 102 views
1

我在Linux上構建了一個簡單的攝像頭錄像機,效果很好。 我得到〜25fps視頻和良好的音頻。QueryFrame在Windows上非常慢

我在Windows上移植刻錄機(win7),雖然它的工作,它是無法使用。 QueryFrame函數需要超過350ms,即2.5fps。

的代碼是蟒蛇,但真正的問題似乎是LIB調用。

我在同一臺機器上測試具有相同網絡攝像頭(一個Logitech E2500)。 在windows上,我安裝了openCV v2.2。我現在無法檢查,但是Ubuntu上的版本可能會更高一些。

任何想法可能是什麼問題?

編輯:我剛剛安裝openCV2.4和我有同樣的速度慢。

回答

1

如果問題確實存在QueryFrame我懷疑可能會發生以下情況:相機的Windows驅動程序以OpenCV本機不支持的格式檢索幀,因此OpenCV被迫將幀轉換爲它理解的格式。此操作會消耗CPU,如果幀的大小很大,您會注意到性能會降低。

出於測試目的,您可以:

1)設定較小的尺寸爲框架,看看它是否可以提高性能:

cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 320); 
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 240); 

2)使用另一臺相機,看看如果問題消失。

一旦你確定這是真的發生了什麼事,試圖找到驅動程序的更新,並希望它解決了問題,或者停止使用Windows。 =)

+0

@karlphilip:'或停止使用Windows' ......我喜歡:)。順便說一句,你使用哪一個? Fedora的? Ubuntu的? –

+0

Fedora/Ubuntu/Mac OS X.但我有幾個Windows VM用於測試我的跨平臺應用程序。你呢? – karlphillip

+0

@karlphilip:通常是fedora。 Windows很少。 –

1

我有同樣的問題,我發現,這是長期接觸引起的。 Windows驅動程序可能會增加曝光量以增加照片的亮度。請儘量把相機指向光源或手動設置減少曝光量