是否可以使用 VImage 检查两个捕获的帧之间的差异?
Posted
技术标签:
【中文标题】是否可以使用 VImage 检查两个捕获的帧之间的差异?【英文标题】:Is it possible to check difference between two captured frames from using VImage? 【发布时间】:2020-10-15 05:48:11 【问题描述】:当我们开始录制 mac 屏幕时,我有一个问题。我只需要使用唯一的帧而不是重复的帧。是否可以使用 Macos 加速框架进行过滤?
【问题讨论】:
【参考方案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。
【讨论】:
以上是关于是否可以使用 VImage 检查两个捕获的帧之间的差异?的主要内容,如果未能解决你的问题,请参考以下文章