我需要爲我的研究。 我接受了littleimp的建議,但修復顏色和翻轉圖像花費寶貴的時間來弄清楚。
這就是我最終的結果。
typedef Mat Image ;
typedef struct {
int width;
int height;
char* title;
float field_of_view_angle;
float z_near;
float z_far;
} glutWindow;
glutWindow win;
Image glutTakeCVImage() {
// take a picture within glut and return formatted
// for use in openCV
int width = win.width;
int height = win.height;
unsigned char* buffer = new unsigned char[width*height*3];
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, buffer);
Image img(height, width, CV_8UC3, buffer);
Image flipped_img;
flip(img,flipped_img,0);
Image BGR_img;
cvtColor(flipped_img,BGR_img, COLOR_RGB2BGR);
return BGR_img;
}
我希望有人認爲這有用。
「OpenGL圖像」在這種情況下意味着什麼?紋理?一個場景呈現給framebuffer?一個場景呈現給一些離屏緩衝區? –
@MatsPetersson我用更多的解釋更新了這個問題 – mFeinstein
@MatsPetersson我猜它是「一個渲染到framebuffer的場景」選項,要更清楚。我還在深入學習OpenGL,所以我試圖找到更多關於所有必讀內容的信息,而且我找不到太多的東西......任何方向都是最受歡迎的! – mFeinstein