从C扩展访问PIL图像的像素数据的速度方面来说,最有效的方法是什么?我只需要对它进行只读访问,如果这样做有区别的话。
kjthegm61#
PIL的C级绑定是可用的,但是关于它们的文档非常少。您需要参考源代码以了解用法信息。
kwvwclae2#
除了C扩展,你可以试试numpy。虽然需要一些学习。要开始,检查Convert RGBA PNG to RGB with PIL和http://effbot.org/zone/pil-numpy.htm。根据我的经验,如果代码编写得当,numpy的性能会很好。使用C扩展处理图像数据仍然会很慢。但numpy使用SSE2等SIMD指令,这极大地改善了直方图提升或alpha混合等操作。
2条答案
按热度按时间kjthegm61#
PIL的C级绑定是可用的,但是关于它们的文档非常少。您需要参考源代码以了解用法信息。
kwvwclae2#
除了C扩展,你可以试试numpy。虽然需要一些学习。要开始,检查Convert RGBA PNG to RGB with PIL和http://effbot.org/zone/pil-numpy.htm。
根据我的经验,如果代码编写得当,numpy的性能会很好。使用C扩展处理图像数据仍然会很慢。但numpy使用SSE2等SIMD指令,这极大地改善了直方图提升或alpha混合等操作。