2012-05-22 10 views
8

Ich versuche, eine iOS-App zu entwickeln, die Echtzeit-Effekte auf Video von der Kamera ausübt, ähnlich wie Photobooth auf dem iPad. Ich bin vertraut mit der API für OpenCV, bin aber besorgt über die Leistung auf iOS, wenn die meisten Prozesse auf der CPU gegenüber der GPU abgeschlossen sind. Bibliotheken wie GPUImage würden wahrscheinlich den Trick machen, aber ich würde lieber bei etwas bleiben, mit dem ich vertraut bin. Also, weiß jemand, ob OpenCV für iOS kompiliert die GPU verwendet?OpenCV unter iOS - GPU-Nutzung?

+0

Eine gute Metal GPU Verarbeitung auf iOS Ref: https://www.objc.io/issues/21-camera-and-photos/gpu-accelerated-image-processing/ – MoDJ

Antwort

15

OpenCV verwendet Cuda für seine GPU, die nur auf NVidia-Grafikkarten unterstützt wird. Es gibt einen experimentellen Port von OpenCV GPU-Funktionen zu OpenCL und es ist wahrscheinlich, dass OpenCL in der Zukunft unterstützt wird - zumindest auf dem iPad (seine GPU kann OpenCL ausführen)

Sie können Shader in OpenGL ES2.0 auf dem iPhone verwenden und iPad

+0

Vielen Dank! Genau das, was ich wissen musste. –

+19

@NathanMurray - Ich möchte darauf hinweisen, dass einer der Hauptgründe, warum ich GPUImage geschrieben habe, darin bestand, viele der Funktionen von OpenCV GPU-beschleunigt zu ersetzen. Es verwendet OpenGL ES 2.0 Shader unter der Haube und abstrahiert den zugrundeliegenden Code, der für die maximale Leistung auf iOS erforderlich ist. Für die Verarbeitung von Live-Videos auf iOS kann ich mit Sicherheit sagen, dass es momentan keine schnellere Bibliothek gibt. Ich habe auch versucht, es so einfach wie möglich in eine Anwendung zu integrieren. –

+3

Brads GPUImage ist sehr nützlich. – Rob