【问题标题】:Is it possible to check difference between two captured frames from using VImage?是否可以使用 VImage 检查两个捕获的帧之间的差异?
【发布时间】:2020-10-15 05:48:11
【问题描述】:

当我们开始录制 mac 屏幕时,我有一个问题。我只需要使用唯一的帧而不是重复的帧。是否可以使用 Macos 加速框架进行过滤?

【问题讨论】:

    标签: objective-c macos accelerate-framework


    【解决方案1】:

    可以使用 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      相关资源
      最近更新 更多