OpenGL渲染模型 || 1. OpenCV、OpenGL的环境配置

本文详细介绍如何在Windows 10环境下使用Visual Studio 2015配置OpenGL与OpenCV库,包括freeglut、glew及OpenCV的下载、编译与配置过程,并通过示例代码验证配置成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近项目中需要使用到OpenGL对3D模型进行渲染,然后得到图片、以及3D坐标对应在2维图片上的坐标。
这个任务需要使用到三方库 OpenGL、OpenCV。

OpenGL渲染模型 || 1. OpenCV、OpenGL的环境配置
OpenGL渲染模型 || 2. 3D模型的读取与保存
OpenGL渲染模型 || 3. opengl 将模型成渲染图片

1 opengl 概述

opengl 之下有很多的库,大概的定义如下图所示
在这里插入图片描述
当前比较流行的搭配是 freeglut + glew,或者 glfw + glew。如果想做简单的测试,gl、glu 即可。

glut是基本的窗口界面,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨平台性,所以我们可以尽量的使用glut库。

GLUT不是 OpenGL 所必须的,但它会给我们的学习带来一定的方便。
首先,需要包含头文件#include <gl/glut.h>,这是 GLUT的头文件。本来 OpenGL 程序一般还要包含<gl/gl.h>和<gl/glu.h>,但GLUT 的头文件中已经自动将这两个文件包含了,不必再次包含。

2 win10-vs2015-配置openGL 的 freeglut、glew


2.1 下载

cmake:用于编译源码的软件。免安装。
https://cmake.org/download/
在这里插入图片描述
freeglut:取代 glut(glut逐渐已经不被使用)
https://sourceforge.net/projects/freeglut/
glew:
http://glew.sourceforge.net/
在这里插入图片描述


2.2 使用 cmake 编译 freeglut 并配置

  1. 将下载的包解压,到 cmake 路径下,双击 cmake-gui.exe

    在这里插入图片描述
  2. 填写 freegult 解压的路径,以及编译好存放的路径(路径不存在的话,会选择同意创建路径)。
    在这里插入图片描述
  3. 填写好之后,点击左下角的 【configure】
    在这里插入图片描述
    确认配置如下

    在这里插入图片描述
  4. 然后再次点击 【Configure】,之后点击旁边的 【Generate】,完成之后在点击 【Open Project】
    在这里插入图片描述

    5. 我这里需要编译 release版本,所以选择了 【release + x64】。 然后在资源管理器中,选择右击 【ALL_BUILD】–>【生成】
    在这里插入图片描述
  5. 结束后,我们需要的库已经编译好了。
    • 将解压后的文件夹中的 include拷贝出来
    • 将 freeglut-3.2.1-solution\bin\Release\freegult.dll 拷贝出来
    • 将 freeglut-3.2.1-solution\lib\Release\freegult.lib、freeglut_static.lib 拷贝出来。
      在这里插入图片描述
      这就是我们所需要的文件。
  6. 将文件进行配置
    有两种方式。自己更习惯使用第一种,这样在工程封装打包时候,会更方便。
    • 配置到自己创建的工程下。
      在vs工程的属性里面进行配置:配置头文件路径、配置lib路径和名字、配置dll路径或移动dll到工程路径下(细节在后面,与opencv的配置一起记录)
    • 配置到系统环境下。
      –> include\GL 放到 【C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\GL】下(include中没有GL,自己创建一个)
      –> freeglut.lib 放置【C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib】
      –> freegult.dll 放置 【C:\Windows\SysWOW64】
  7. 在新建的项目的属性中,【C/C++】–【预处理器】中添加如下内容:
    _UNICODE
    NDEBUG
    _CRT_SECURE_NO_DEPRECATE
    
    前两项是避免freeglut的使用报错的;最后一项,是避免使用 scranf 时候报错的

2.3 配置 GLEW

glew的包解压后的文件为:
在这里插入图片描述

  1. 【glew-2.1.0\build\vc12】路径下,用vs2015 打开 glew.sln 解决方案
  2. 我这里需要编译 release版本,所以选择了 【release + x64】。 然后在资源管理器中,选择右击 【解决方案glew】–>【生成解决方案】
    在这里插入图片描述
    然后库就编译好了。
  3. 将文件进行配置
    与freegult一样,有两种方式。
    • 配置到自己创建的工程下。在vs工程的属性里面进行配置:配置头文件路径、配置lib路径和名字、配置dll路径或移动dll到工程路径下
    • 配置到系统环境下。
      .h: --> 将 include\GL 放到 【C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\GL】下(include中没有GL,自己创建一个)
      .lib:–> 将 【glew-2.1.0\lib\Release\x64\glew32.lib、glew32s.lib】 放置【C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\amd64】
      .dll:–> 将 【\glew-2.1.0\bin\Release\x64\glew32.dll】 放置 【C:\Windows\SysWOW64】【C:\Windows\System32】

3 win10-vs2015-配置opencv


3.1 opencv 的下载

opencv的包,在官网 https://opencv.org/releases/ 进行下载。
在这里插入图片描述

  • 方式1:官网提供了源码 Source链接,可以下载下来进行 cmake 编译。变异后会生成 opencv 的多个相关的库,编译方式与前面介绍的 freegult 的编译相似。
  • 方式2:下载已经编译好的 Windows 链接。下载下来是一个 exe 文件,运行后会得到opencv的头文件、lib、dll。(自己习惯使用)

双击 下载的 opencv-3.4.12-vc14_vc15.exe,生成一个文件夹,内容如下:

在这里插入图片描述
我们所需要的文件:

  • 将 opencv\build 的 include拷贝出来
  • 将 opencv\build\x64\vc14\bin\opencv_world3412.dll 拷贝出来
  • 将 opencv\build\x64\vc14\lib\opencv_world3412.lib拷贝出来
    在这里插入图片描述

3.2 opencv 的配置

三方库的配置,我习惯是能配置在vs工程下,就不配置在系统环境下。一是受深度学习的虚拟环境的影响,避免不同库之间不兼容的影响(或许没有不兼容的问题);二是工程拷贝到其他电脑,或者工程封装打包等的方便性的问题。

  1. 打开vs2015,【新建】–>【项目】–>【Visual C++】–>【空项目】–>【选择路径,修改名称】–>【确定】
    在这里插入图片描述

  2. 在工程路径下,创建两个文件夹:include、lib。
    将上面 freeglut 和 opencv 的所用文件拷贝到工程路径下的头文件,lib文件分别拷入其中。
    将 dll 文件拷贝到项目路径下。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  3. 在资源管理器中的头文件中添加一个 .h 文件,在源文件中添加一个 .cpp 文件(工程中添加了头文件,项目属性才有 C/C++这一栏)

  4. 先选择 【release + x64】

  5. 右击项目–>【属性】–>【C/C++】–>【附加包含目录】
    $(SolutionDir)include;$(SolutionDir)include\opencv;$(SolutionDir)include\opencv2在这里插入图片描述
    【链接器】–>【常规】–>【附加库目录】
    $(SolutionDir)\lib;
    在这里插入图片描述
    【链接器】–>【输入】–>【附加依赖项】
    freeglut_static.lib;freeglut.lib;opencv_world3412.lib;opencv_world3412d.lib;
    在这里插入图片描述

  6. 【C/C++】–>【预处理器】–>【预处理器定义】
    _UNICODE;NDEBUG;_CRT_SECURE_NO_DEPRECATE;
    在这里插入图片描述

4 测试

添加cpp脚本


#include<GL/glut.h>
#include<GL/freeglut.h>
#include<opencv2/opencv.hpp>
#include<iostream>

using namespace std;

void myDisplay(void)

{
	glClear(GL_COLOR_BUFFER_BIT);
	glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
	glFlush();

}

int main(int argc, char *argv[])
{
	//测试opencv的库====================
	cv::Mat img = cv::imread("image.jpg");
	cv::namedWindow("图片", CV_WINDOW_NORMAL);
	cv::imshow("图片", img);
	cv::waitKey();

	//测试opengl的库=====================
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
	glutInitWindowSize(500, 500);
	glutInitWindowPosition(100, 100);
	glutCreateWindow("OpenGLTest");

	glutDisplayFunc(myDisplay);
	glutMainLoop();

	return 0;

}

运行结果为:
在这里插入图片描述
将图片关掉后:
在这里插入图片描述
这说明 opencv、opengl已经配置成功。接下来就要完成具体的代码实现。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值