IOS — ускорение преобразования CMSampleBufferRef в образ dlib

Я использовал приведенный ниже код для преобразования iOS CMSampleBufferRef в dlib :: array2d:

- (void)inputImageFromSampleBuffer:(CMSampleBufferRef)sampleBuffer
{
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CVPixelBufferLockBaseAddress(imageBuffer, kCVPixelBufferLock_ReadOnly);

size_t width = CVPixelBufferGetWidth(imageBuffer);
size_t height = CVPixelBufferGetHeight(imageBuffer);

char *baseBuffer = (char *)CVPixelBufferGetBaseAddress(imageBuffer);

if (inputImage.nr() != height) {
inputImage.set_size(height, width);
}

inputImage.reset();
long position = 0;
while (inputImage.move_next()) {
dlib::bgr_pixel& pixel = inputImage.element();

long bufferLocation = position * 4;
char r = baseBuffer[bufferLocation];
char g = baseBuffer[bufferLocation + 1];
char b = baseBuffer[bufferLocation + 2];

dlib::bgr_pixel newpixel(b, g, r);
pixel = newpixel;

position++;
}

CVPixelBufferUnlockBaseAddress(imageBuffer, kCVPixelBufferLock_ReadOnly);
}

Я сделал это для каждого кадра от делегата - (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection, Время обработки этой задачи составляло около 10 мс (запуск на Iphone 5S), что слишком медленно для моей потребности. Есть ли способ ускорить эту задачу?

1

Решение

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

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

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

По вопросам рекламы [email protected]