使用 numpy.ndarray 手动构建图像而不是 cv2.imread()

Construct image with numpy.ndarray manually instead of cv2.imread()

我正在尝试了解图像如何存储为 RGB 值

当我用内置函数type()type()检查时,我刚刚意识到通过cv2.imread()方法读取的图像只是一堆数字,尤其是每个像素存储在numpy.ndarray中的RGB数字=20=]

import cv2
im = cv2.imread('./rgb.png',cv2.IMREAD_UNCHANGED)
print(type(im)) # Output: numpy.ndarray

但我仍然不知道那个数组中每个索引的表示形式

为了理解它,我想用 numpy.ndarray

手动制作 3col * 4row 图像

我希望图像位于:

所有行!

使用存储在变量中的 numpy.ndarray 声明 im 并根据我的预期成功保存

im = np.ndarray('What should I fill in here?')
cv2.imwrite('success.jpg',im)

看看这是否有帮助。我创建了一个空的 numpy 数组,然后用纯色填充每个象限:

import numpy as np
from PIL import Image

im = np.zeros( (480,640,3), dtype=np.uint8 )

im[:240,:320,:] = (255,0,0)
im[:240,320:,:] = (0,255,0)
im[240:,:320,:] = (0,0,255)
im[240:,320:,:] = (255,255,255)
print(im.shape)

p = Image.fromarray(im)
p.save('x.jpg')

输出: