scipy 如何在Python中创建一个白色图像?

2ic8powd  于 2022-11-10  发布在  Python
关注(0)|答案(7)|浏览(159)

在做家庭作业时,我偶然发现了一个关于Python和图像操作的问题。我必须说,使用图像库不是一个选择。所以在这里

from scipy.misc import imread,imsave
from numpy import zeros

imga = zeros([100,100,3])
h = len(imga)
w = len(imga[0])

for y in range(h):
    for x in range(w):
        imga[y,x] = [255,255,255]

imsave("Result.jpg",imga)

我会假设它使我的图片白色,但它变成黑色,我不知道为什么它不是关于代码(我知道它看起来很丑).它只是关于一个事实,它是一个黑色的图像.

moiiocjp

moiiocjp1#

图像中的每一种颜色都用一个字节来表示,所以要创建一个图像数组,你应该将它的dtype设置为uint 8。
而且,你不需要for-loop将every元素设置为255,你可以使用fill()方法或slice index:

import numpy as np
img = np.zeros([100,100,3],dtype=np.uint8)
img.fill(255) # or img[:] = 255
x9ybnkn6

x9ybnkn62#

简单!检查以下代码:

whiteFrame = 255 * np.ones((1000,1000,3), np.uint8)

255是填充字节的颜色。
10001000是图像的大小。
3是图像的颜色通道。
unit8
古德勒克

a64a0gku

a64a0gku3#

创建imga时,需要设置单元类型,具体来说,更改以下代码行:

imga = zeros([100,100,3], dtype=np.uint8)

并且,将以下内容添加到导入中:

import numpy as np

这会在我的机器上显示白色图像。

pjngdqdw

pjngdqdw4#

这里有一个简单的方法来创建一个白色的图像与Python一班轮。

$ python3 -c "from PIL import Image;Image.new('RGB', (1900, 1080), color = (255,255,255)).save('Img.jpg')"

这将创建一个宽度为1900,高度为1080的白色图像。

zrfyljdw

zrfyljdw5#

标题太宽泛了,首先出现在谷歌上。我需要一个白色的图像,并使用了PIL和numpy。PILlow实际上与numpy配合得很好

import numpy as np
from PIL import Image
img = np.zeros([100,100,3],dtype=np.uint8)
img.fill(255) # numpy array!
im = Image.fromarray(img) #convert numpy array to image
im.save('whh.jpg')
uidvcgyl

uidvcgyl6#

就这个问题的标题而言,我确实需要一个白色的图像和一个枕头输入。这里提出的解决方案对我不起作用。
因此,这里的不同的方式来生成白色图像用于其他目的:

from PIL import Image
img = Image.new('RGB', (200, 50), color = (255,255,255))

可以在www.example.com()-函数的第二个和第三个参数中更改大小和颜色Image.new。
如果你想在这张图片上写点什么或者保存它,这就是这个的示例代码。

from PIL import ImageFont, ImageDraw
fnt = ImageFont.truetype("Pillow/Tests/fonts/FreeMono.ttf", 30)
ImageDraw.Draw(img).text((0,0), "hello world", font=fnt, fill=(0,0,0))
img.save('test.jpg')
nhaq1z21

nhaq1z217#


# Create an array with a required colours

# The colours are given in BGR [B, G, R]

# The array is created with values of ones, the size is (H, W, Channels)

# The format of the array is uint8

# This array needs to be converted to an image of type uint8

selectedColor = [75, 19, 77] * np.ones((640, 480, 3), np.uint8)
imgSelectedColor = np.uint8(np.absolute(selectedColor))

相关问题