OpenGL ES上的图像几何重映射

Image Geometrical remapping on OpenGL ES

本文关键字:何重 映射 图像 ES OpenGL      更新时间:2023-10-16

我有一个在PC上运行的算法,它使用OpenCV重映射。它很慢,我需要在嵌入式系统上运行它(例如,这样的设备:http://www.hardkernel.com/main/products/prdt_info.php

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

我有另一个有OpenGL 2.0的设备,那个设备能做着色器编程吗?

在哪里可以了解OpenGL中的着色器编程?

我使用的是Linux。

编辑1

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

我需要在嵌入式系统上运行它,因此我想使用OpenGL或OpenCL(该板有OpenCL1.1驱动程序)。

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

一台拥有良好显卡(与OpenCV兼容)的电脑比像Odroid或Banana Pi这样的嵌入式电脑快得多。我的意思是,在这些平台上,计算功率/价格或计算功率/能量更低。

如果你的算法很慢:

  • 您确定您的图形驱动程序已正确配置为支持OpenCV吗
  • 试着改进你的算法。在当前的PC上,使用OpenCL很容易获得1TFLOP,所以如果你的程序真的需要更多,你应该考虑计算机云之类的。检查您是否配置了适当的缓冲区类型等

OpenGL 3允许使用通用着色器,但OpenGL 2非常不同,要使算法兼容肯定要困难得多,或者根本不可能。

要学习OpenGL/GLSL,请非常小心,因为大多数页面都会学习坏代码/旧代码。我向你推荐一本好书,比如:http://www.amazon.com/OpenGL-Shading-Language-Cookbook-Edition/dp/1782167021/ref=dp_ob_title_bk

编辑1

OpenGL 3+或OpenGL ES 3+具有通用着色器并且可以用于快速计算。所以,是的,你会得到性能的提高。但这些平台上的显卡非常小/速度很慢(通常小于10核)。不要期望在这个ODROID上获得与在拥有500-2000 GPU内核的PC上相同的1分钟结果。

OpenGL 2有固定的流水线,很难用于并行计算。

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