将RGB中的随机颜色分配到图像中

时间:2014-11-08 04:20:29

标签: python opencv image-processing

我使用OpenCV和Python实现图片,要求将随机的R,G,B颜色分配给图像中的每个像素。

这是我目前的代码:

red, green, blue = (255, 0, 0), (0, 255, 0), (0, 0, 255)
rgb = [red, green, blue]
image = img_gen(width, height, rgb_color = random.choice(rgb))

width, height = 640, 480

def img_gen(width, height, rgb_color=(0, 0, 0)):
  ...
    for x in range (0, width):
      for y in range (0, height):
          # what code should be inserted here?

我现在可以实现一张图片,只指定一个随机选项来填充整个图像,但我想知道热点可以访问每个"像素"。

2 个答案:

答案 0 :(得分:0)

我不确定你的img_gen函数返回什么,但是从rgb获取随机条目你可以使用

务必import random 试试:

img = []
for x in range (0, width):
    for y in range (0, height):
        img.append(rgb[random.randint(0,2)])
return img

这实际上取决于openCV在您想要使用的功能中所期望的图像格式。

编辑:

如果你正在使用numpy,你应该使用

img = np.array(width*height)

然后用

引用内容
img[x*width + y] = ....

答案 1 :(得分:0)

您只需使用 -

即可
img = np.random.rand(width, height, 3);

这将创建随机像素值。

CAVEAT - RGB值介于[0,1]而非[0,255]之间。