2013-07-05 140 views
1

使用OpenGL支持的OpenCV庫在使用GPU和OpenGL編譯時允許使用OpenGL顯示圖像。例如,video_reader.cpp(位於GPU示例中)使用OpenGL直接從cv::gpu::GpuMat渲染顯示圖形。使用OpenGL在OpenCV中繪圖

cv::gpu::GpuMat d_frame; 
namedWindow("OpenGL", WINDOW_OPENGL); 
cv::gpu::VideoReader_GPU d_reader(fname); 
d_reader.dumpFormat(std::cout); 
if (!d_reader.read(d_frame)) 
    break; 
cv::imshow("GPU", d_frame); 

這是一個非常有用的功能。但是,它沒有記錄在documentation on-line中。例如,對於namedWindow,文檔中未列出標誌WINDOW_OPENGL。我在哪裏可以找到有關OpenCV的OpenGL相關功能的文檔?

+1

該文檔不涵蓋每個功能。前一天,我發現C API方法cvLinearPolar(通過它可以將圓形對象映射到矩形)完全沒有參考。舊API中缺少許多功能。我希望授權的人審查項目並更新文檔:) – baci

回答

0

功能

cv::imshow(const & string, cv::InputArray) 

沒有原生支持GPU矩陣,而是由鑄造支持GPU矩陣。

即在其輸入端支持cv::Mat的任何東西也應該支持cv::gpu::GpuMat。我認爲這意味着當你調用函數時,它會自動將矩陣下載到一個cv::Mat並從那裏開始,即你的imshow函數調用不是直接繪製gpu-> gpu,而是繪製gpu-> cpu-> gpu。