我看到glReadPixels
是哈里斯角落用黑点读取黑色图像时的主要瓶颈。 FPS从30下降到15.是否可以获得没有glReadPixels
和GPUImageCrosshairGenerator
的角点坐标?我知道GPUImageRawDataOutput
,但不知道如何用它替换glReadPixels
方法。
答案 0 :(得分:0)
在GPUImage中实现的Harris角点检测器的问题不是通过glReadPixels()
捕获帧,而是在此之后发生的点提取。这与其他角落探测器,甚至霍夫变换线探测器相同。
问题在于,当使用OpenGL / OpenGL ES时,从像素域中提取稀疏点很棘手。目前,我读取像素,然后在CPU上迭代它们。这是一个非常缓慢的过程。
将来,我计划实现一个histogram pyramid point extractor以允许这主要在GPU上完成,我相信这应该可以更快地提取这些点。但是,Haven还没有时间这么做。