opencv读取一张图片,然后在opengl窗口进行显示.
img_src = cv::imread(cam_data_filename.at(cam_data_filename.size() / 2));
cv::Mat img_src_pyup;
cv::pyrDown(img_src, img_src_pyup, cv::Size(img_src.cols / 2, img_src.rows / 2));
cv::Mat flipped_img;
cv::flip(img_src_pyup, flipped_img, 0);
cv::Mat img = flipped_img;
src_imgshow_pixellen = img.channels() * img.rows * img.cols;
src_pixeldata = (unsigned char *)malloc(sizeof(unsigned char) * src_imgshow_pixellen);
src_imgshow_width = img.size().width;
src_imgshow_height = img.size().height;
memcpy(src_pixeldata, img.data, src_imgshow_pixellen);
if (src_pixeldata != NULL) {
glDrawPixels(src_imgshow_width, src_imgshow_height, GL_BGR_EXT, GL_UNSIGNED_BYTE, src_pixeldata);
glFlush();
glutSwapBuffers();
}
注意在显示之前,需要调用flip将图像进行翻转.
https://stackoverflow.com/questions/16809833/opencv-image-loading-for-opengl-texture