Próbuję wyodrębnić dane pikseli z poszczególnych klatek filmu QT.
Myślę, że muszę użyć CV, ponieważ QTKit i NSImage by bądź zbyt wolny...
Muszę porównać każdy piksel obrazu w buforze (CVImageBufferRef) zawierającym aktualną klatkę kamery internetowej (iSight). Więc potrzebuję szybkości.
Przepraszam za mój zły język angielski, jestem Włochem.
Odpowiedzi:
5 dla odpowiedzi № 1Zobacz kod w pytaniu jak przekonwertować CVImageBufferRef na UIImage, co jest większym pytaniem, ale dotyczy tego samego zagadnienia. Oto kod podstawowy, którego potrzebujesz (z OP tego pytania):
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
/*Lock the image buffer*/
CVPixelBufferLockBaseAddress(imageBuffer,0);
/*Get information about the image*/
uint8_t *baseAddress = (uint8_t *)CVPixelBufferGetBaseAddress(imageBuffer);
size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
size_t width = CVPixelBufferGetWidth(imageBuffer);
size_t height = CVPixelBufferGetHeight(imageBuffer);
/*We unlock the image buffer*/
CVPixelBufferUnlockBaseAddress(imageBuffer,0);
Koniecznie przeczytaj zaakceptowaną odpowiedź, aby uzyskać pełniejsze wyjaśnienie formatu danych.