资源简介
利用OpenCV读取本地jpg图像,利用OpenGL实现了将2维的jpg图像显示成三维图像,可以利用鼠标进行平移,旋转,缩放等控制。环境VS2010和OpenGL和OpenCV,需要用户自己配置OpenGL(很简单的)。不错的源代码。配置好环境可以直接运行(里面包含了例子图像和exe文件)
代码片段和文件信息
// OpenGL_2Dto3D.cpp : Defines the entry point for the console application.
#include “stdafx.h“
#include “OpenGL_2Dto3D.h“
/* Simple window transformation routine */
GLvoid Transform(GLfloat Width GLfloat Height)
{
glViewport(0 0 Width Height); /* Set the viewport */
glMatrixMode(GL_PROJECTION); /* Select the projection matrix */
glLoadIdentity(); /* Reset The Projection Matrix */
gluPerspective(45.0Width/Height0.1100.0); /* Calculate The Aspect Ratio Of The Window */
glMatrixMode(GL_MODELVIEW); /* Switch back to the modelview matrix */
}
/* A general OpenGL initialization function. Sets all of the initial parameters. */
GLvoid InitGL(GLfloat Width GLfloat Height)
{
glClearColor(0.0 0.0 0.0 0.0); /* This Will Clear The Background Color To Black */
glShadeModel(GL_SMOOTH);
Transform( Width Height ); /* Perform the transformation */
}
/* The function called when our window is resized */
GLvoid ReSizeGLScene(GLint Width GLint Height)
{
if (Height==0) Height=1; /* Sanity checks */
if (Width==0) Width=1;
Transform( Width Height ); /* Perform the transformation */
}
/* The main drawing function
In here we put all the OpenGL and calls to routines which manipulate
the OpenGL state and environment.
This is the function which will be called when a “redisplay“ is requested.
*/
GLvoid DrawGLScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* Clear The Screen And The Depth Buffer */
glPushMatrix(); //把矩阵压入栈中保存起来,留着以后再用
glLoadIdentity(); //把矩阵堆栈中的在栈顶的那个矩阵置为单位矩阵,好让之前的任何变换都不影响后面的变化
// glTranslatef(0.00.00.0); //下面物体将在(x0.0f0.0f)的位置绘制
// glRotatef(xr1.00.00.0); //沿x0.0f0.0f的y轴旋转45度 从 坐标(0,0,0)即原点,引出一条线到(100)用右手握住这条线,
//这时,你会问,如何握?右手大拇指指向 (0,0,0)至(1,0,0)的方向 才握。另外四个手指的弯曲指向 即是物体旋转方向。
glTranslatef(cameraPositionX cameraPositionY cameraDistance);
glRotatef(cameraAngleX 1 0 0);
glRotatef(cameraAngleY 0 1 0);
glScalef(xsyszs); //xsyszs分别为模型在xyz轴方向的缩放比。
//glBegin(GL_POLYGON);
glBegin(GL_POINTS);
/****************************************/
for (float i = 0; i < Image_2D.cols; i++)
{
// gl_x = float (i/Image_2D.cols);
for (float j = 0; j < Image_2D.rows; j++)
{
// gl_y = float (j/Image_2D.rows);
// gl_z = float (Image_2D.at(ji)/256.0f);
//if gl_x
// cout << gl_x << endl;
// cout << gl_y << endl;
//glVertex3f( gl_x gl_y gl_z);
glColor3f(1.0Image_2D.at(ji)/256.0f0.0);
glVertex3f( (i - Image_2D.cols/2)*0.1 (j - Image_2D.rows/2)*0.1 Image_2D.at(ji)*0.1);
}
}
/******************************************/
/*********************
glVertex3f( 1.0 2.0 1.0);
glColor3f(1.00.00.0);
glVertex3f(-1.0 1.0 1.0);
glColor3f(1.01.00.0);
glVer
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-05-20 19:31 OpenGL_2Dto3D\
目录 0 2016-05-20 19:29 OpenGL_2Dto3D\Debug\
文件 60416 2016-04-20 18:22 OpenGL_2Dto3D\Debug\OpenGL_2Dto3D.exe
文件 527572 2016-04-20 18:22 OpenGL_2Dto3D\Debug\OpenGL_2Dto3D.ilk
文件 1616896 2016-04-20 18:22 OpenGL_2Dto3D\Debug\OpenGL_2Dto3D.pdb
目录 0 2016-04-28 20:25 OpenGL_2Dto3D\ipch\
目录 0 2016-05-20 19:29 OpenGL_2Dto3D\ipch\opengl_2dto3d-9dae658b\
文件 2359296 2016-04-28 20:25 OpenGL_2Dto3D\ipch\opengl_2dto3d-9dae658b\opengl_2dto3d-ea21d83a.ipch
目录 0 2016-05-20 19:30 OpenGL_2Dto3D\OpenGL_2Dto3D\
文件 40390656 2016-04-28 22:24 OpenGL_2Dto3D\OpenGL_2Dto3D.sdf
文件 906 2016-04-20 17:49 OpenGL_2Dto3D\OpenGL_2Dto3D.sln
文件 13312 2016-04-28 22:24 OpenGL_2Dto3D\OpenGL_2Dto3D.suo
文件 35476 2015-12-07 11:21 OpenGL_2Dto3D\OpenGL_2Dto3D\2.jpg
目录 0 2016-05-20 19:30 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\
文件 2010 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\cl.command.1.tlog
文件 15918 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\CL.read.1.tlog
文件 916 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\CL.write.1.tlog
文件 2 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 2 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 2 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 2 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 2 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 2 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 2592 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 6216 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 978 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\li
文件 430 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\mt.command.1.tlog
文件 362 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\mt.read.1.tlog
文件 362 2016-04-20 18:22 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\mt.write.1.tlog
文件 406 2016-04-20 18:19 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\OpenGL_2Dto3D.exe.em
文件 472 2016-04-20 18:19 OpenGL_2Dto3D\OpenGL_2Dto3D\Debug\OpenGL_2Dto3D.exe.em
............此处省略47个文件信息
相关资源
- openCV_1.0及2.0版本使用的Lib和Dll文件
- OpenCV人脸识别-3.0
- Qt+OpenCV人脸识别
- opencv 360度n张图像拼接,任意角度两
- opengl绘制太阳、地球、月球
- zw_摄像头实时监控与报警系统Opencv.
- 基于OpenCV的计算机视觉技术实现
- LearningOpenCV.7z
- Opencv manager
- Qt通过控件控制立方体旋转
- 学习opencv中文版+英文版PDF电子书+原书
- opencv双目视觉棋盘格标定,特征匹配
- 毕业设计:基于ARM-Linux的应用OpenCV和
- OpenGL编程指南 第九版英文版 OpenGL P
- 三维游戏设计师宝典(经典!)——学
- OpenGL课程设计
- 图像放大waifu2x算法vs opencv实现
- OpenGL飘动的雏菊画布
- Dalsa Nano 相机采集数据导入OpenCV
- 数码管数字识别--穿线法
- 基于背景差法的运动目标检测
- 2017年研究生数学建模D题二等奖
- 学习OpenCV(中文版高清扫描版带目录
- 2018 Learning OpenCV3 第三版 英文 高清完
- 基于opencv的车辆动态追踪
- opencv-4.10.zip
- 人脸识别,基于VS+openCV
- opencv3.4.0 vs2017编译的x86版本,可以直
- opencv-3.4.0 x86的Debug 和Release版本
- learning opencv3英文原版电子版学习ope
评论
共有 条评论