Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 基于opengles的图像几何重映射_C++_Opencv_Opengl_Opengl Es - Fatal编程技术网

C++ 基于opengles的图像几何重映射

C++ 基于opengles的图像几何重映射,c++,opencv,opengl,opengl-es,C++,Opencv,Opengl,Opengl Es,我有一个在PC上运行的算法,使用OpenCV重新映射。它很慢,我需要在嵌入式系统上运行它,例如这样的设备: 它有OpenGL 3.0,我想知道是否有可能在OpenGL着色器中编写代码来执行重新映射OpenCV重新映射 我有另一个设备,有OpenGL 2.0,该设备可以做着色器编程吗 在哪里可以学习OpenGL中的着色器编程 我正在使用Linux 编辑1 代码在PC上运行,大约需要1分钟,在am嵌入式系统上大约需要2小时 我需要在嵌入式系统上运行它,因此我认为要使用OpenGL或OpenCL,主板

我有一个在PC上运行的算法,使用OpenCV重新映射。它很慢,我需要在嵌入式系统上运行它,例如这样的设备:

它有OpenGL 3.0,我想知道是否有可能在OpenGL着色器中编写代码来执行重新映射OpenCV重新映射

我有另一个设备,有OpenGL 2.0,该设备可以做着色器编程吗

在哪里可以学习OpenGL中的着色器编程

我正在使用Linux

编辑1 代码在PC上运行,大约需要1分钟,在am嵌入式系统上大约需要2小时

我需要在嵌入式系统上运行它,因此我认为要使用OpenGL或OpenCL,主板上有OpenCL1.1驱动程序


这方面的最佳选择是什么?我可以使用OpenGL2或OpenGL3吗?

一台配有与OpenCV兼容的良好图形卡的电脑比像Odroid或香蕉皮这样的小型嵌入式电脑要快得多。我的意思是,在这些平台上,计算能力/价格或计算能力/能量更低

如果您的算法很慢:

您确定您的图形驱动程序已正确配置为支持OpenCV吗? 尝试改进你的算法。在当前的PC上,使用OpenCL很容易获得1TFLOP,因此如果您的程序确实需要更多,您应该考虑计算机云等。检查您是否配置了适当的缓冲区类型等。 OpenGL3允许使用常规着色器,但OpenGL2与之非常不同,要使算法兼容必须更加困难或不可能

要学习OpenGL/GLSL,请非常小心,因为大多数页面都会学习坏代码/旧代码。 我向你推荐一本好书,比如:

编辑1

OpenGL 3+或OpenGL ES 3+具有通用着色器,可用于快速计算。因此,是的,您将获得性能提升。但这些平台上的图形卡非常小/速度慢,通常少于10核。不要期望在这款ODROID上获得与使用500-2000 GPU内核的PC相同的1分钟结果

OpenGL2有固定的管道,很难将其用于并行计算


如果你真的需要使用嵌入式平台,也许你可以使用它们的云?

谢谢。我可能会让人有点困惑。请看我编辑的问题。谢谢。在PC上,我没有使用OpenGL,只是在CPU上处理。我想在这些设备上使用OprnGL或OpenCL来进行快速处理,并将处理减少到可比的程度。120分钟到1分钟有很大区别!你查过这段时间在哪里丢失了吗?内存访问缓存或分配、S.O.等,主要是opencv的重映射功能