4

我正在尝试从 QT 电影的各个帧中提取像素数据。

我想我需要使用 CV,因为 QTKit 和 NSImage 会太慢......

我需要比较包含网络摄像头 (iSight) 的当前帧的缓冲区 (CVImageBufferRef) 中图像的每个像素。所以我需要速度。

对不起我的英语不好,我是意大利人。

4

1 回答 1

6

请参阅问题中的代码如何将 CVImageBufferRef 转换为 UIImage,这是一个更大的问题,但涵盖了相同的领域。这是您需要的基本代码(来自该问题的 OP):

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);

请务必阅读已接受的答案以更全面地解释数据格式。

于 2011-12-06T15:06:14.807 回答