在Python OpenCV或PIL中,制作电影或图像系列中最大像素值的图像的最佳方法是什么



除了创建新图像的明显方法之外,是否有更有效的方法(例如,使用已经更快/较低级别实现的函数),浏览电影的每个帧使用for循环,并且每个迭代都通过帧中的每个像素进行,如果图像大于当前值,则在相应的像素值中更新图像。

我确实可以使用cv.get2d在框架中访问单个像素,所以这很好又花花公子。我只是想知道我是否可以利用更快或更多硬件优化的方法,因为我将在许多gheyscale视频中这样做。

有很多方法可以做到这一点,而"最佳"方法将取决于您可以使用的硬件。

如果您使用的是良好的AMD视频卡,则可以使用AMD的OpenVideo Decodododododode库将帧传递到您的GPU,然后使用OpenCL来进行数学。它将是邪恶的。

如果您没有AMD图形卡,但是您确实有一张不错的NVIDIA卡或Intel HD4000(基于新的Ivy Bridge基于Ivy Bridge的Core i7 System),则可以使用OpenCV来读取帧,然后将数据传递给opencl,仍然可以在大量的平行上进行数学。

即使您没有不错的视频卡,您仍然可以使用OpenCL CPU上下文来进行计算,并且如果您使用int4向量数据类型,您的代码将使用Intel或AMD的SSE2寄存器处理器。这应该是4倍,如问题声明中提到的幼稚像素迭代的速度。

添加答案,因为K. Brafford没有直接回答问题的'openCV或pil'一部分

从这里完成的台式标记中,似乎 OPENCV是清晰的获胜者

最新更新