1.OpenCV、OpenGL和OpenES
OpenCV:跨平台计算机视觉库,提供一系列视觉处理的算法,并且是开源的(接口主要是c#,现在也有python、java、和MATLAB的接口)。现在还没有计算机视觉方面标准的API,OpenCV致力于成为这样一个标准API【1】。
OpenGL(open graphic library):用于渲染2d,3d矢量图形【2】的跨语言、跨平台的应用程序编程接口。用来从简单的图形比特绘制复杂的三维镜像。
OpenGL规范表述了绘制2D和3D图形的抽象API。它的API定义了若干可被客户端程序调用的函数。
OpenGL中的这些包用来创建并管理OpenGL窗口,也可以管理输入。
(1)Glew——跨平台窗口和键盘、鼠标、手柄处理;偏向游戏。
(2) Freeglut——矿平台窗口和鼠标、键盘处理。
(3)GLUT——早期的窗口处理库,已经不再维护。
OpenES:实际上是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。
2.Unity3D和ARToolKit
Unity3D:是一个可以轻松创建注入三维视频游戏、建筑可视化、实时三维动画等类型的多平台综合型游戏开发工具。它利用交互的图型化开发环境为首要方式的软件。不需要进行底层编程。
ARToolKit:需要用C/C++来进行编程。
(这两款的区别类似于制作网页的时候,用dreamwaver和NetBeans。)
3 .lib文件,.dll文件、.h文件
.h文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。
三者的关系是:
H文件:声明函数接口
DLL文件:函数的可执行代码
在程序中引用了一个H文件里的函数是,LIB文件起到了桥梁的作用,告诉链接器调用的函数在哪个DLL文件中,函数执行代码在DLL中的什么位置。
注释
【1】API是应用程序编程接口,就是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,又无须访问源码。(stdio.h)
【2】矢量图:使用直线和曲线来描述图形,这些图形的元素是一些点、线、举行、多边形、元和弧线等。他们是通过数学公式计算获得的。是计算机图形学中用点、直线或者多边形等基于数学方程的几何图元表示图像。也就是让给机器看的,精准定位的东西,计算机容易识别。
(需要阅读马颂德和张正友的《计算机视觉》)