如何解决如何在Prettytable中删除值小于0%的行
我正在尝试获取否。由于循环遍历每个单个像素而放置的图像中的颜色数目显示的是几种颜色,其值小于0%。我正在尝试删除在prettytable中显示的以下列表中百分比值小于0%的行
代码如下:
img = Image.open("bnw.jpg")
size = w,h = img.size
data = img.load()
colors = []
for x in range(w):
for y in range(h):
color = data[x,y]
hex_color = '#'+''.join([hex(c)[2:].rjust(2,'0') for c in color])
colors.append(hex_color)
pt = prettytable.prettytable(['Color','Count','Percentage'])
total = w * h
for color,count in Counter(colors).items():
percent = int(count/total * 100)
pt.add_row([color,count,percent])
# res = []
# for i in colors:
# if i not in res:
# res.append(i)
# print("The list after removing duplicates : " + str(res))
print(pt,total)
这是输出
+---------+--------+------------+
| Color | Count | Percentage |
+---------+--------+------------+
| #ffffff | 478329 | 71 |
| #fdfdfd | 932 | 0 |
| #fefefe | 1219 | 0 |
| #fbfbfb | 556 | 0 |
| #fafafa | 279 | 0 |
| #f8f8f8 | 89 | 0 |
| #f9f9f9 | 199 | 0 |
| #fcfcfc | 705 | 0 |
| #f7f7f7 | 50 | 0 |
| #040404 | 538 | 0 |
| #020202 | 883 | 0 |
| #010101 | 1196 | 0 |
| #000000 | 179583 | 26 |
| #080808 | 45 | 0 |
| #060606 | 176 | 0 |
| #050505 | 323 | 0 |
| #030303 | 726 | 0 |
| #0a0a0a | 17 | 0 |
| #070707 | 78 | 0 |
| #090909 | 28 | 0 |
| #f6f6f6 | 24 | 0 |
| #f5f5f5 | 12 | 0 |
| #0b0b0b | 8 | 0 |
| #f4f4f4 | 5 | 0 |
+---------+--------+------------+ 666000
这是我要达到的必需输出
+---------+--------+------------+
| Color | Count | Percentage |
+---------+--------+------------+
| #ffffff | 478329 | 71 |
| #000000 | 179583 | 26 |
+---------+--------+------------+ 666000
解决方法
您怎么样呢?只是不首先添加它们?另外,您正在寻找等于或小于零的值。
for color,count in Counter(colors).items():
percent = int(count/total * 100)
if percent > 0:
pt.add_row([color,count,percent])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。