【发布时间】:2020-10-15 05:48:11
【问题描述】:
当我们开始录制 mac 屏幕时,我有一个问题。我只需要使用唯一的帧而不是重复的帧。是否可以使用 Macos 加速框架进行过滤?
【问题讨论】:
标签: objective-c macos accelerate-framework
当我们开始录制 mac 屏幕时,我有一个问题。我只需要使用唯一的帧而不是重复的帧。是否可以使用 Macos 加速框架进行过滤?
【问题讨论】:
标签: objective-c macos accelerate-framework
您可以使用 vDSP 来做到这一点。 Apple 的Finding the Sharpest Image in a Sequence of Captured Images 示例代码讨论了在 vImage 和 vDSP 之间共享数据。收集两张图像的像素值后,使用subtract(_:_:) 查找差异,然后使用maximum(_:) 查找最大元素的值。如果最大值小于某个阈值,则两个缓冲区相同。
请注意,vDSP 不适用于 Pixel_8 值 - 如果您不捕获每通道 32 位像素,则需要转换为 Float,这可能会产生开销。
当然,根据您捕获屏幕的方式,您可能根本不需要 vImage。例如,如果您正在获取 CVPixelBuffer 实例,请使用 CVPixelBufferGetBaseAddressOfPlane 将数据传递给 vDSP。
【讨论】: