Совместное использование текстур OpenGL ES & lt; — & gt; OpenCV

По сути, у меня есть два textureId, один в качестве ввода и один в качестве вывода, с шириной и высотой. Все, что мне нужно сделать, это получить доступ к входной текстуре GL с помощью OpenCV, скажем, выполнить задачу обнаружения объекта, а затем передать содержимое на выходную текстуру GL. Итак, какой самый быстрый способ сделать это?

Мне удалось решить эту проблему, создав переменную Mat и заполнив данные беззнаковым символом * с помощью glReadPixels, но, как вы знаете, этот метод слишком медленный.

Есть ли способ выполнить ту же задачу? Вы можете думать вне общего маршрута.
Как, например, использование OpenCL с cl :: ImageGL, если это возможно, или что-то еще, что должно поддерживаться на Android.
Кто-то также предложил мне использовать pbos, но я не понимал, как применить их к этому проекту.

Для тех, кто может нуждаться / хочет получить источник или просто лучше знает, о чем я говорю, вот источник:

void testProgram(JNIEnv* env, jnit texIn, jint texOut, jint w, jint h){

static cv::Mat mat;
mat.create(h, w, CV_8UC4);
glReadPixels(0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, mat.data);
//glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texOut);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, w, h, GL_RGBA, GL_UNSIGNED_BYTE, mat.data);​

}

Любому, кто скажет, что это дубликат другого вопроса: не могли бы вы сообщить мне, прежде чем пометить его как дубликат? Я проверил, прежде чем поставить этот вопрос, поэтому я не могу объяснить, что я ищу. Я хочу исправить вопрос, если смогу.

Я ищу больше, чем один способ сделать это, просто чтобы выполнить тест производительности.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …