我读了一个图像,将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)
答案 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))