热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenCV与VRML

OpenCV一、基本概念OpenCV的全称是:OpenSourceComputerVisionLibraryOpenCV于1999年由Intel建立,

OpenCV
一、基本概念

  OpenCV的全称是:Open Source Computer VisionLibrary

OpenCV于1999年由Intel建立,现在由Willow Garage提供支持。OpenCV是一个基于BSD许可证授权(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。[1]最新版本是2.3。

二、应用领域

  1、人机互动

  2、物体识别

  3、图象分割

  4、人脸识别

  5、动作识别

  6、运动跟踪

  7、机器人

三、OpenCV的优势

  为什么有OpenCV

  计算机视觉市场巨大而且持续增长,且这方面没有标准API,目前的计算机视觉软件大概有以下三种:

  1.研究代码(慢,不稳定,独立并与其他库不兼容)

  2.耗费很高的商业化工具(比如Halcon,MATLAB+Simulink)

  3.依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)

这是目前的现状。而标准的API将简化计算机视觉程序和解决方案的开发。OpenCV致力于成为这样的标准API。

  OpenCV致力于真实世界的实时应用,通过优化的C代码的编写对其执行速度带来了可观的提升,并且可以通过购买Intel的IPP高性能多媒体函数库(Integrated Performance Primitives)得到更快的处理速度。右图为OpenCV与现在其他主流视觉函数库的性能比较。

VRML(Virtual Reality Modeling Language)即虚拟现实建模语言。是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,也具有平台无关性。是目前Internet上基于 WWW的三维互动网站制作的主流语言。 VRML是虚拟现实造型语言(Virtual Reality ModelingLanguage)的简称,本质上是一种面向web,面向对象的三维造型语言,而且它是一种解释性语言。VRML的对象称为结点,子结点的集合可以构成复杂的景物。结点可以通过实例得到复用,对它们赋以名字,进行定义后,即可建立动态的VR(虚拟世界)。

VRML

  熟悉WWW的人都知道,受HTML的限制,网页只能是平面的结构,就算 JAVA语言能够为网页增色不少, 但也仅仅停留在平面设计阶段,而且实现环境与浏览者的动态交互是非常繁琐的。于是VRML应运而生。尤其是VRML 2.0标准,被称为第二代Web语言,它改变了WWW上单调、交互性差的弱点,将人的行 

为作为浏览的主题,所有的表现都随操作者行为的改变而改变。 VRML创造的是一个可进入、可参与的世界。你可以在计算机网络上看到一幅幅生动、逼真的三维立体世界,你可以在里面自由的遨游;你可以将网络上流行的MUD游戏转换为立体图形世界; 你可以将你公司的主页改编成三维主页,让浏览者领略到你公司的实貌,而不仅仅是简单的文本、表格... VRML是一种国际标准,其规范由国际标准化组织(ISO)定义,MIME类型为 x-world/x-vrml,它的表现与操作系统平台无关。VRML1.0只能创建静态的3D景物,你可以在它们之间移动,来测览三维世界。 VRML1.0是基于SGI公司的OpenInventor的文件格式,也是它的一个子集,是一种流行的3D图形的格式,并可链接到一般的WWW页。VRML1.0的立体链接,即构成了VRML的世界。 可以看出,用VRML1.0很容易做出三维物体,这也正是VRML1.0的基本目的所在。另外,有些厂家将VRML1.0进行了扩展,使其可以实现一些动画功能和交互性,但只能在Live3D 的环境下运行。由于VRML1.0的种种限制,VRML2.0的产生也就是不可避免的。VRML1.0只能创建静态的3D景物。因此虽然能用WML1.0来建立用户的虚拟代表,它们却不能做其他任何事情。但是,VRML2.0能够改变这一点,它增加了行为,可以让物体旋转、行走、滚动、改变颜色和大小。 比较起来,VRML2.0比VRML1.0有了长足的进步,其巨大的改变,正如当年Microsoft公司的Window95比之Windows3.0的进步。 

  其主要改进有: 

  1.增强了静态世界; 

  2.增加了交互性; 

  3.增加了动画功能; 

  4.增加了编程功能; 

  5.增加了原形定义功能。 

在VRML的世界里你可以用虚拟开关将灯光打开,当您走近清彻透底 的泉水时水声逐渐变响,当你向远处驶来的汽车招手时汽车停下来把你载上...

VRML的历史

  VRML 1.0标准是许多人的共同合作的结果。1993年9月,Tony Parisi和Mark Pesce开发了第一个VRML测览器。在第一届WW大会上(1994年秋于日内瓦),由Tim Berners-Lee和Dave Raggett所组织的一个名为BOF的小组提出了VRML这个名字,但当时所代表的含义Virtual Reality Markup Language,只是在后来由于为了反映三维世界的建立而将Markup改为了Modeling,缩写仍为VRML。在这次大会后,一个名www-vrmlmail list的组织成立了,并于1994年秋在第二次WWW大会上发布了VRML1.0的草稿。VRML1.0允许单个用户使用非交互功能,且没有声音和动画,它只允许建立一个可以探索的环境,但没有别的。虽然VRML1.0给人的最初印象看起来十分有限,但它的确形成了一组开发者可以用的工作核心, 以便建立RML2.0、VRML3·0或更新的版本。VRML2.0的规范于1996年8月通过,它在VRML1.0的基础上进行了很大的补充和完善。它以SGI公司的Move World提案为基础。业界范围内对于VRML2.0的支持非常大。 许多重要的厂商明确表示,VRML2.0将是他们产品结构的基础。 

  SGI公司,最有影响力的VRML厂商,已经引进Cosmo3D——一个VRML2.0的API,作为其新的工具结构Viper的基础。Cosmo3D的附件支持为SGI公司已有工具而编写的应用程序,而这些应用程序也就变成了Viper内置的专用功能。SGI公司许多广为传播的工具也支持VRML2.0。 

  Sun Microsystems公司,Java的先驱,最近选择VRML2.0作为其基于Java的3DAPI——Java3D的功能内核。Microsoft公司已经采纳了VRML2.0标准,并已利用DimensionX基于Java的Liquid Reality来生成用于WML2·0测览的ActiveX组件。可在WindowsNT4·0上找到的Microsoft公司的优化OpenGL 1·1,而Microsoft的Direct3D与已通过硬件加速显示了它强大无比的功能。


推荐阅读
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • Webpack 初探:Import 和 Require 的使用
    本文介绍了 Webpack 中 Import 和 Require 的基本概念和使用方法,帮助读者更好地理解和应用模块化开发。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • HTML中span元素为何会脱离li元素对齐?
    在HTML布局中,有时会遇到span元素未能与li元素保持对齐的问题。本文将探讨这一现象的原因,并提供解决方案。 ... [详细]
author-avatar
雪染苍原牛仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有