macos - 如何从 CVImageBufferRef 类型的每个像素获取信息?(OSX)

标签 macos image buffer pixel isight

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

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

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

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

最佳答案

查看问题how to convert a CVImageBufferRef to 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);

请务必阅读已接受的答案,以获得对数据格式的更完整解释。

关于macos - 如何从 CVImageBufferRef 类型的每个像素获取信息?(OSX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8392968/

相关文章:

jquery - 图像叠加 HTML/CSS

java - byte[] 不会解析为图像

c++ - 为什么 CFile + CArchive 比 C I/O 流性能更好?

windows - 将导出的 Mac 生成的 R 数据集导入 Windows XP 上的 SAS?

macos - 将自定义项目模板添加到 Visual Studio Preview for Mac

iphone - 使用自定义框架

macos - Cocoa 中有用于代码编辑的 API 吗?

python - 如何在python中删除图像的背景

linux - 顶部命令输出中的 Mem 和 Swap

php - ob_get_level() 从级别 1 开始