gpt4 book ai didi

python - 如何将图像的像素值复制到另一个python变量以使该python变量将图像保存在opencv中

转载 作者:行者123 更新时间:2023-12-02 17:19:23 32 4
gpt4 key购买 nike

我使用 np.zeros 创建了一个黑色图像:

mask = np.zeros((800, 500, 3))
mask
现在我想编辑这个名为 mask 的变量,把它变成我喜欢的图像。我知道我可以像这样访问像素值:
for i in range(0,800):
for j in range(0,500):
mask[i,j]=[110,23,245]
但这不起作用,因为输出是白色图像:
white image
如果我只使用这样的单个值。它给了我一个蓝色的图像:
blue image
但我没有使用 255,它不应该给我像 255 像素值这样的完整深蓝色图像:
for i in range(0,800):
for j in range(0,500):
mask[i,j]=[110,0,0]
我知道我可以像这样复制图像:
mask=image
但是我正在做的事情是我在 3 个二维数组中有 r、g、b 颜色的值,我需要将它们转换为图像。所以我不能只是复制粘贴。

最佳答案

首先,在创建黑色图像时还要指定数据类型:

mask = np.zeros((800, 500, 3), dtype=np.uint8)
然后,要将整个图像着色为另一种颜色,您可以使用切片方法而不是迭代所有像素,它会很快。
像这样:
mask[:, :] = (110,23,245)
您的情况出现问题是因为您在创建掩码图像时没有指定数据类型。因此,它默认使用 float 作为其数据类型,然后颜色的范围将在 0-1 之间。当您传递大于 1 的值时,它会将其作为该颜色的全部强度。因此,出现了完整的白色和蓝色图像。
而且,如果你想复制一个图像,使用这个:
mask = image.copy()

关于python - 如何将图像的像素值复制到另一个python变量以使该python变量将图像保存在opencv中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62964947/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com