循环遍历所有的RGB值并将图像缝合到一起

2024-07-04 17:52:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉编码,我真的很困惑。从下面的代码中,我试图打印出RGB光谱中从(0,0,0)到(255255255)的每一种颜色,所以技术上应该有256^3张所有颜色的图像。我在下面做过,它只对红色、蓝色或绿色光谱,而不是组合。我所要做的是把打印出来的所有颜色都以这种格式逐像素地缝合在一起。我不想把所有的图片都打印出来,而是在最后得到合并的版本。任何帮助将不胜感激!非常感谢你的帮助!在

我想得到从0到255的3个变量的所有组合。例如,print axis的输出将是:

(0,0,0)
(1,0,0)
(2,0,0)
...
(255,0,0)
(0,1,0)
(0,2,0)
...
(0,255,0)
(0,0,1)
(0,0,2)
...
(0,0,255)
(1,0,1)
...

所以基本上这3个数字的不同组合直到255。在

我尝试使用下面的一个,但我要做的是有点不同,我想要的每个像素都是不同的,并通过循环的值以逐像素的格式缝合在一起。在

Range values to pseudocolor

^{pr2}$

Tags: 代码图像版本编码颜色格式图片光谱
1条回答
网友
1楼 · 发布于 2024-07-04 17:52:25

要完成此操作,需要三个嵌套的for循环:

for r in range(256):
  for g in range(256):
    for b in range(256):
      do_your_thing_with(r, g, b)

你想做什么还不清楚,但我想提醒你:你似乎想再次在这些循环中嵌套x和y的循环。你会很快做一些需要很长时间才能完成的事情。毕竟,256×256×256已经是1670万了。如果你现在遍历1000×1000像素的图像中的每个像素,那么你将有16.7万亿次迭代。在

考虑一下您想做什么,也许可以将您的问题和示例代码减少到必要的最低限度,以了解您的问题所在。在

关于您的评论:

我建议这样做是为了创造一个有很多颜色的图像:

^{pr2}$

它使用生成器来创建许多不同的颜色(each_color())。在它上使用next()将返回一个接一个的颜色。然后可以在嵌套循环中使用它来为每个像素着色。在

请注意,generate将产生1670万个值,但是使用此代码您将只要求1000000个像素(这很好,生成器不需要用尽),因此此图像中不会使用大多数颜色。在

相关问题 更多 >

    热门问题