使用 skimage 或 numpy 进行灰度梯度

the*_*ggg 2 numpy image-processing scikit-image

我必须创建一个线性灰度渐变,顶部为黑色阴影,底部为白色阴影。我必须使用 skimage 和 numpy。

我在 scikit 上找到了水平而不是垂直的颜色线性渐变的代码:http://scikit-image.org/docs/dev/auto_examples/plot_tinting_grayscale_images.html

我想要对此代码的解释以及有关如何将所有内容置于灰度和垂直而不是彩色和水平的一些提示。谢谢!

Ste*_*alt 5

灰度图像可以表示为二维矩阵。假设我们想要创建一个 100x100 的渐变图像。首先,我们使用np.linspace来构造梯度值,即 0 到 1 之间的 100 个值。然后,我们在垂直方向上重复该向量 100 次(使用np.tile)以形成梯度图像。在这个阶段,图像是从左到右的渐变,因此我们使用转置将其翻转为上下方向。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 1, 100)
image = np.tile(x, (100, 1)).T

plt.imshow(image, cmap='gray')
plt.show()
Run Code Online (Sandbox Code Playgroud)