Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Pygame中比较图像(不是逐像素)_Python_Image_Pygame - Fatal编程技术网

Python 在Pygame中比较图像(不是逐像素)

Python 在Pygame中比较图像(不是逐像素),python,image,pygame,Python,Image,Pygame,我有一个图像数组,其中有多个图像,例如 guns = [pygame.image.load('gun1.jpg'),pygame.image.load('gun2.jpg'),pygame.image.load('gun3.jpg'),pygame.image.load('gun4.jpg')] 所有这些图像都是黄色的矩形,我已经将其中一些更改为相同尺寸的白色矩形,以使它们在我的代码中消失 现在我必须检查一下,在那一组枪中,哪些图像是白色的,哪些不是 为此,我尝试了循环: for i in r

我有一个图像数组,其中有多个图像,例如

guns = [pygame.image.load('gun1.jpg'),pygame.image.load('gun2.jpg'),pygame.image.load('gun3.jpg'),pygame.image.load('gun4.jpg')]
所有这些图像都是黄色的矩形,我已经将其中一些更改为相同尺寸的白色矩形,以使它们在我的代码中消失

现在我必须检查一下,在那一组枪中,哪些图像是白色的,哪些不是

为此,我尝试了循环:

for i in range(0,window_size):
    print('wolla2!')
    if guns[i] is whiteIm:
        print('wolla!')
    i+=1
其中,whiteIm是我替换的白色图像,window\u size是图像的数量。但我知道我不能这样做


如何检查阵列中的图像是否为白色?

以下是四种加一的可能性,您可以根据自己的情况进行评估和选择:

子类图像: 您可以对Image类进行子类化以添加属性

向图像动态添加属性: 在Python中,您可以动态添加一个属性:
gun1.color=“w”

维护并行阵列: 图像存储在一个数组中,可能很容易并行维护一个布尔数组,例如False为黄色,True为白色

为图像文件的名称添加前缀: 当您以“增白”方式命名这些文件时,您可以添加一个
w
前缀,然后根据它们的名称进行分隔
gun1.jpg
-->
w_gun1.jpg

然后,可以根据这些图像的
\uuuu name\uuuuu

添加一个标签:(可能?)
在tkinter中,您可以向画布对象添加标记,并根据标记将其作为一个组进行操作。。。也许pygame也提供了类似的可能性?

是什么使图像变成白色或黄色?这些是它们的默认颜色。gun1.jpg,gun2.jpg。。。它们都是黄色图像…我将用白色图像替换它们。whiteIm=pygame.load.image('white.jpg'),其中white.jpg是白色图像。好的,谢谢-如果识别了这些图像,您可以对
image
类进行子类化以添加属性?(在Python中,您甚至可以动态添加此属性?)或者,如果图像存储在一个数组中,那么并行维护一个布尔数组可能会更容易,例如False为黄色,True为白色。好主意。我试试看。。但是,难道不可能对它们进行比较吗?这将节省我大量的时间和代码。这只是我代码的一部分。。。我必须在任何地方都这样做,否则。你将这些文件命名为“白化”文件。。。您能否添加一个
w_u
前缀,然后根据其名称进行分隔
gun1.jpg
-->
w_gun1.jpg
非tkinter。。。但是,用并行方法制作一系列布尔值对我来说效果很好。谢谢:)