使用 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
图像
我希望图像位于:
- 第一列用红色填充 (255,0,0)
- 第二列用绿色填充 (0,255,0)
- 第三列用蓝色填充(0,0,255)
所有行!
使用存储在变量中的 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')
输出:
我正在尝试了解图像如何存储为 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
图像
我希望图像位于:
- 第一列用红色填充 (255,0,0)
- 第二列用绿色填充 (0,255,0)
- 第三列用蓝色填充(0,0,255)
所有行!
使用存储在变量中的 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')
输出: