【发布时间】:2018-10-30 00:38:42
【问题描述】:
代码运行良好,但速度很慢。如何矢量化颜色替换以避免使用 Python for 循环?
processed_image = np.empty(initial_image.shape)
for i, j in np.ndindex(initial_image.shape[:2]):
l_, a, b = initial_image[i, j, :]
idx = mapping[a + 128, b + 128]
a, b = new_colors[tuple(idx)]
processed_image[i, j] = l_, a, b
我在 CIELAB 空间中有一个图像 initial_image 作为形状 (一些高度,一些宽度,3)的 numpy 数组。我需要通过使用mapping 更改图像的 a 和 b 颜色分量来生成校正图像。 mapping 是一个形状为 (255, 255, 2) 的 numpy 数组。它为我提供了索引,可用于从new_colors 获取更正的 a 和 b 颜色。 new_colors 的形状为 (table height, table width, 2)。
使用 scikit-image 的解决方案也会有所帮助。
【问题讨论】:
标签: python performance numpy image-processing scikit-image