使用Python计算RGBA值

时间:2016-04-06 10:24:07

标签: python count rgba

我读了一个图像,将RGBA值推入一个数组,现在我想计算某些颜色的出现。但是我得到的只是0.我该怎么做(没有转换为字符串)?相关代码片段和输出:

输出:

Image123.png
8820
[(138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), (138, 18, 20, 255), ......
0
0

代码:

read_pixel = []

print(filename)
read_pixel.append(pixel[image_x, image_y])

print(image_size_x*image_size_y)
print(read_pixel)

count_lte_70_1 = read_pixel.count("(138, 18, 20, 255)")
print(count_lte_70_1)

#without parenthesis
count_lte_70_2 = read_pixel.count("138, 18, 20, 255")
print(count_lte_70_2)

3 个答案:

答案 0 :(得分:2)

使用

char buffer[1024];
fp = popen("ls /", "r");
fread(buffer, 1, sizeof(buffer), fp);

您正在搜索字符串的匹配项,而您的列表包含元组。相反,你应该使用:

count_lte_70_1 = read_pixel.count("(138, 18, 20, 255)")

答案 1 :(得分:1)

好吧,你不应该使用count("(a,b,c,d)")count((a,b,c,d))

您现在的方式是计算列表中的字符串数量

x=[(1,2),(3,4),(3,4)]
print(x.count((1,2)) #returns 1
print(x.count((3,4)) #returns 2

答案 2 :(得分:1)

引号是你的问题,你正在搜索元组而不是字符串。只需留下引号并使用

read_pixel.count((138, 18, 20, 255))