在 Python 中使用 OpenCV 从随机数组中创建 RGB 图片
Posted
技术标签:
【中文标题】在 Python 中使用 OpenCV 从随机数组中创建 RGB 图片【英文标题】:Creating an RGB picture in Python with OpenCV from a randomized array 【发布时间】:2018-04-25 14:48:47 【问题描述】:我想使用 OpenCV/Numpy 设置在 Python 中创建由随机像素值数组组成的 RGB 图像。
我能够创建灰色图像 - 看起来非常生动;使用此代码:
import numpy as np
import cv2
pic_array=np.random.randint(255, size=(900,800))
pic_array_8bit=slika_array.astype(np.uint8)
pic_g=cv2.imwrite("pic-from-random-array.png", pic_array_8bit)
但我也想把它做成彩色的。我尝试使用 cv2.cvtColor() 进行转换,但它无法正常工作。
问题可能出在数组定义或遗漏步骤中。找不到类似的情况...任何帮助如何制作彩色随机 RGB 图像,都会很棒。
谢谢!
【问题讨论】:
【参考方案1】:RGB 图像由三个灰度图像组成。您可以制作三个灰度图像,如
rgb = np.random.randint(255, size=(900,800,3),dtype=np.uint8)
cv2.imshow('RGB',rgb)
cv2.waitKey(0)
【讨论】:
【参考方案2】:首先,您应该使用 numpy 定义一个由 3 个通道组成的随机图像数据,如下所示-
import numpy as np
data = np.random.randint(0, 255, size=(900, 800, 3), dtype=np.uint8)
现在使用,python成像库如下图-
from PIL import Image
img = Image.fromarray(data, 'RGB')
img.show()
您还可以使用save
函数轻松保存图像
img.save('image.png')
【讨论】:
OP问OpenCV,为什么要引入PIL?以上是关于在 Python 中使用 OpenCV 从随机数组中创建 RGB 图片的主要内容,如果未能解决你的问题,请参考以下文章