我使用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?
我现在可以实现一张图片,只指定一个随机选项来填充整个图像,但我想知道热点可以访问每个"像素"。
答案 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]之间。