我正在使用 GPUImage 来处理传入的视频,并且每一帧我都想确定传入图像的许多矩形子区域的平均亮度,以便在游戏中进行命中检测,但是我在这样做时遇到了麻烦杀死FPS。
我目前的情况是遍历感兴趣的命中框,使用 GPUImageCropFilter 裁剪所述命中框的帧,在裁剪区域上执行平均亮度,如果亮度足够高,则在主线程上的完成块调用命中方法。如果只有几个命中框,这可以正常工作,但对于我正在处理的项目,一次可能有几十个这会杀死 FPS。
有没有推荐的方法来修改上述方法以提高性能?我认为可以通过使用自定义着色器制作一个新过滤器来实现这一点,该着色器会产生一种局部像素化效果(像素化感兴趣的矩形,所以我可以检查该区域中的任何像素的亮度),但我不确定是否可以将这样的一系列感兴趣的区域传递给过滤器/着色器。谢谢。