Как масштабировать из CVImageBufferRef - или - почему не работает setPixelBufferAttributes?

Я снимаю видео с камеры (Macbook Air, OSX 10.9.5) через QTCaptureDecompressedVideoOutput и обрабатывать его, но мне нужно масштабировать поступающее изображение. По какой-то причине изображение, возвращаемое мне, не соответствует размеру, который я запрашивал при установке атрибутов пиксельного буфера:

   [mVideoOutput setPixelBufferAttributes:
       [NSDictionary dictionaryWithObjectsAndKeys:
            [NSNumber numberWithDouble:width], (id)kCVPixelBufferWidthKey,
            [NSNumber numberWithDouble:height], (id)kCVPixelBufferHeightKey,
            [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32ARGB], (id)kCVPixelBufferPixelFormatTypeKey,
            nil]];

Я получаю изображение в два раза больше, чем я просил.

Каков наиболее эффективный способ масштабирования изображения до половины его размера?

Или даже лучше....

Почему setPixelBufferAttributes не работает должным образом?

1 ответ

Решение

Кажется, что setPixelBufferAttributes был проигнорирован при первом запросе, поэтому при обратном вызове, когда изображение получено с камеры, я проверяю размер и снова выдаю запрос, если он неправильный. Это, кажется, решило проблему.

Другие вопросы по тегам