图像像素处理的高效算法
Effecient algorithms for image pixel manipulations
有没有比通常扫描像素阵列并更改它们更有效的方法来访问和更改图像像素?我有一个伪代码,但我想要一个比这更好的方法。我只需要一个算法,任何语言都可以。它看起来像这样:-
For i in range(0,len(pixel_array),4)
pixel_array[0] = a //a is some random value
pixel_array[1] = a
pixel_array[2] = a
pixel_array[3] = 1
我曾经遇到过类似的问题,当时我在 SDL_Texture 中移动像素。除非您告诉我们您到底想要做什么,否则您真的没有更好的选择。您是否必须逐个像素地操作像素,或者是否可以在一个区域中设置完整的区域(例如,如果您画一条线,您可以使用 memset 将数组中的整个范围设置为该数据)?你需要检查,什么可以更快地完成。可以通过批量编辑像素来优化绘制矩形。但是如果你真的需要独立地改变每个像素,那么,不,除了在 GPU 上而不是 CPU(例如使用 OpenGL)之外,没有任何更快的尝试。
有没有比通常扫描像素阵列并更改它们更有效的方法来访问和更改图像像素?我有一个伪代码,但我想要一个比这更好的方法。我只需要一个算法,任何语言都可以。它看起来像这样:-
For i in range(0,len(pixel_array),4)
pixel_array[0] = a //a is some random value
pixel_array[1] = a
pixel_array[2] = a
pixel_array[3] = 1
我曾经遇到过类似的问题,当时我在 SDL_Texture 中移动像素。除非您告诉我们您到底想要做什么,否则您真的没有更好的选择。您是否必须逐个像素地操作像素,或者是否可以在一个区域中设置完整的区域(例如,如果您画一条线,您可以使用 memset 将数组中的整个范围设置为该数据)?你需要检查,什么可以更快地完成。可以通过批量编辑像素来优化绘制矩形。但是如果你真的需要独立地改变每个像素,那么,不,除了在 GPU 上而不是 CPU(例如使用 OpenGL)之外,没有任何更快的尝试。