2013-11-26 79 views

回答

0

它取決於IplImage/cv::Mat中的數據類型。 如果它的類型是CV_8U,那麼像素格式已經是正確的,你只需要:

  1. 確保您的OpenCV的數據具有正確的色彩格式相對於你的OpenGL上下文(OpenCV的commomnly使用BGR顏色通道排序而不是RGB)
  2. 如果您的原始圖像有一些方向,則需要使用cvFlip()/cv::flip()垂直翻轉它。理性的背後是OpenCV的座標框架在左上角(y軸向下),而OpenGL應用程序通常在底部有原點(y軸向上)
  3. 使用data指針字段IplImage/cv::Mat訪問像素數據並將其加載到OpenGL中。

如果您的圖像數據的格式不是CV_8U,則需要先使用函數cvConvertScale()/cv::Mat::convertTo()將其轉換爲此像素格式。

+0

謝謝,它的工作:) –

+1

而我發現以下鏈接非常有用。它顯示了一個關於如何去做的代碼片段。這和sansuiso說的一樣.http://carldukeprogramming.wordpress.com/2012/08/28/converting-iplimage-to-opengl-texture/ –