创建所有通道具有恒定标量的彩色图像很容易:
height, width = 3, 4
shape = (height, width)
num_channels = 3
scalar_value = 0.5
image = np.full((*shape, num_channels), scalar_value)
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来创建具有恒定颜色矢量的图像?
vector_value = (0.3, 0.4, 0.5) # e.g. (red, green, blue)
image = create_new(shape, vector_value)
Run Code Online (Sandbox Code Playgroud)
这可以使用自定义函数来完成:
def create_new(shape, vector_value):
image = np.empty((*shape, len(vector_value)))
image[...] = vector_value
return image
Run Code Online (Sandbox Code Playgroud)
但我想知道是否可以使用简单的numpy表达式来完成此操作。
的文档np.full有点误导(阅读不正确)。它接受任何可广播的值fill_value,而不仅仅是标量。这意味着你可以这样做
np.full((*shape, len(vector_value)), vector_value)
Run Code Online (Sandbox Code Playgroud)
我用 numpy 版本 1.17.3 对此进行了测试,我不确定什么时候发生了变化。我的猜测是,如果你回溯得足够远,文档是正确的,并且fill_value只能是一个标量。
目前有一个问题需要更新文档:https://github.com/numpy/numpy/issues/14837。
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |