2016-03-05 52 views
0

我目前需要比较两个NSImage(CIImage等),并且需要在同一位置获取所有不同的颜色,并将这些位置返回(x,y)两个图像。是的,我通过获得这两个图像的两个位图数据缓冲区,并完成CPU中的任务,但我需要像在30 FPS实时处理,CPU得到高(约27%),所以我的问题是我可以通过使用Core Image内核或OpenGL在GPU中执行此任务,如果是的话,我该怎么做。Core Image上的像素计算或Mac OS X上的OpenGl

顺便说一句,我写了一个自定义的核心图像过滤器写我自己的内核,但它需要我200毫秒来完成任务,我该如何改进或有没有更好的解决方案?

当然在Mac OS X 10.10或更高版本中。 谢谢。

[编辑]#1

我测试了一些内置的CIFilters我的512×512的图像,并对其进行测量所用的时间,似乎时间都是围绕20ms的,我不知道我能得到更好的通过使用CIFilters的性能?也许我想要像60 FPS(这是我每帧16毫秒)实时做?

+0

顺便说一句,我想比较两个图像作为线性数据类型,如数组或类似的东西,而不是离散数据的输出。因为我可以循环这个返回数据并保存在某个地方。 –

+0

我认为我已经完成了,连锁我的核心图像过滤器后,我得到的所有过滤器运行在20毫秒,并为30 FPS,这是可以接受的。 –

回答

0

如果您需要“实时”,这意味着我希望将其显示在屏幕上的实时流中。在那种情况下,你可能想要在GPU上做所有事情(不是那种我建议使用vDSP的CPU)。核心图像的CIFilter可能是一条路。

+0

感谢您的建议。我正在使用Core Image的CIFilter。 –