当前位置:   article > 正文

OpenCV、OpenGL、OpenCL和DirectX 的区别、联系、前景_opencl和opencv的区别

opencl和opencv的区别

致敬:

https://blog.csdn.net/zhongguoren666/article/details/6697025 

http://www.elecfans.com/emb/603169_a.html

https://blog.csdn.net/mangobar/article/details/51006521

 

1概念比较

OpenCV =  Open Source Computer Vision Library

OpenGL = Open Graphics Library

OpenCL = Open Computing Language

DirectX = DirectX  ^_^

 

OpenCV主要是提供图像处理和视频处理的基础算法库,还涉及一些机器学习的算法。比如你想实现视频的降噪、运动物体的跟踪、目标(比如人脸)的识别这些都是CV的领域

OpenGL(或DirectX)是什么呢?是负责3D图形处理的API,包括各种光照、纹理、烟雾、阴影等效果。程序员在开发游戏的时候,只要考虑什么时候、在哪个位置,加上什么样的烟雾,就可以了。而不必考虑究竟要怎样去编写代码,才能实现烟雾效果的问题。

OpenCL呢?是显卡作通用浮点运算的API。比如视频转码,原来这个工作都是CPU来做的。现在显卡运算能力比较强,这个工作完全可以交给显卡来做。那究竟怎样调用显卡呢?这个工作不需要再由程序员考虑了,因为已经有一个现成的接口了,程序员只要管好转码的算法,然后直接调用OpenCL中现成的指令,这个工作就自动由CPU转交到GPU了。

DirectX 特点:

1)除视频外,多了音频等其他功能。

2)DirectX通用些,OpenGL专业些。

3)仅用于Microsoft Windows

4)DirectX是左手定则,OpenGL是右手定则

Dx是微软做的一个超大的多媒体处理合集,包括音频,视频,direct3D只是其中之一
Dx做的音视频的采集和显示部分,算法涉及不多
Dx做的事都是和硬件有关系的,都要依赖硬件的,由于ms的强大,现在硬件大都支持dx
dx显示视频的时候没有通过gdi,是直接通过显卡实现的,非常的快。

后面主要比较OpenCV和OpenGL

 

通俗的说:
OpenCV:不知道实际空间,但是有图像,用来处理图像并把图像里面包含的空间信息提取出来。这是图像处理工作用的软件。
OpenGL:知道实际空间参数,要在计算机上把这个空间表达出来。这是计算机图形学的东西。
一个画家写生,看风景就需要OpenCV。。。素描就需要OpenGL。。。

学术的说:

两者的区别就是Computer Vision和Computer Graphics这两个学科之间的区别,前者专注于从采集到的视觉图像中获取信息,是用机器来理解图像;后者是用机器绘制合适的视觉图像给人看

对象类型:

OpenCV:图像

OpenGL:图形

 

2功能比较

各自功能

功能 opencv opengl
对2D的支持 主要2D, 主要3D,专注在Graphics,也支持2D
对3D的支持 一定程度支持3D。传统的视觉计算中,深度图只能当做单通道的灰度图进行处理。想实现隔空的多点触摸是绰绰有余,但是如果想实现三维重建(比如 Kinect Fushion)那么我们必须将算法升级到三维空间。相应的,三维空间的算法也需要三维的 API 进行渲染,也就是 OpenGL 很专业
主要函数 图像处理:降噪、运动物体跟踪、目标(比如人脸)识别、车道线识别 渲染
函数个数 500个左右? 350个左右?
操作系统 Windows,Linux Windows,Linux
硬件 CPU,通过扩展也支持GPU GPU,也支持CPU
同行软件</
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/222727
推荐阅读
相关标签
  

闽ICP备14008679号