赞
踩
https://blog.csdn.net/zhongguoren666/article/details/6697025
http://www.elecfans.com/emb/603169_a.html
https://blog.csdn.net/mangobar/article/details/51006521
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:图形
各自功能
功能 | opencv | opengl |
对2D的支持 | 主要2D, | 主要3D,专注在Graphics,也支持2D |
对3D的支持 | 一定程度支持3D。传统的视觉计算中,深度图只能当做单通道的灰度图进行处理。想实现隔空的多点触摸是绰绰有余,但是如果想实现三维重建(比如 Kinect Fushion)那么我们必须将算法升级到三维空间。相应的,三维空间的算法也需要三维的 API 进行渲染,也就是 OpenGL | 很专业 |
主要函数 | 图像处理:降噪、运动物体跟踪、目标(比如人脸)识别、车道线识别 | 渲染 |
函数个数 | 500个左右? | 350个左右? |
操作系统 | Windows,Linux | Windows,Linux |
硬件 | CPU,通过扩展也支持GPU | GPU,也支持CPU |
同行软件</ |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。