2013-04-23 115 views
0

捕獲當我捕獲從使用基於示例代碼一個網絡攝像頭圖像從http://msdn.microsoft.com/en-us/library/windows/desktop/dd407288(v=vs.85).aspx#example_code鏡像圖像從攝像頭

它正常工作,除了一個奇怪的:圖像沿其x軸鏡像,意味着它是自上而下(但不能旋轉180度)。

那麼這怎麼會發生呢?有沒有可能導致這種行爲的DirectShow選項?

+0

鏡像在相機上啓用,或驅動程序中的錯誤。或者,您的過濾器圖捕獲一些奇怪的第三方多功能過濾器,它在顯示之前改變圖像。 – 2013-04-23 20:30:13

+0

令人驚訝的是,它發生在兩個非常不同的相機,所以我想這不是一個驅動程序問題... – Elmi 2013-04-23 20:38:14

+0

可能是一個功能,而不是一個bug:什麼是由SampleGrabber- > GetCurrentBuffer()?最後一行可能在內存中排在第一位?這可以解釋爲什麼它是最底層的... – Elmi 2013-04-24 06:38:16

回答

1

RGB幀通常具有相反的行順序,從下到上。規則是:

  • RGB像素格式
    • BITMAPINFOHEADER::biHeight> 0 - 底部 - 至 - 頂行
    • BITMAPINFOHEADER::biHeight < 0 - 頂部 - 底部行
  • YUV像素格式
    • 無論從BITMAPINFOHEADER::biHeight符號(正面和負面都有效) - 從上到下排

雖然正反兩方面的biHeight值是有效的,負面的傳播和支持較少。許多過濾器只會拒絕帶有負值的格式。