python计算图片中除去黑色的各种颜色比例
时间: 2023-11-27 09:53:32 浏览: 224
Opencv图像处理:如何判断图片里某个颜色值占的比例
你可以使用Python的Pillow库来计算图片中除去黑色的各种颜色比例。以下是一个示例代码:
```python
from PIL import Image
# 打开图片
image = Image.open("example.jpg")
# 获取图片的大小
width, height = image.size
# 初始化颜色计数器
color_count = {
"red": 0,
"green": 0,
"blue": 0,
"yellow": 0,
"purple": 0,
"white": 0,
"gray": 0
}
# 统计颜色数量
for x in range(width):
for y in range(height):
# 获取像素点的 RGB 值
r, g, b = image.getpixel((x, y))
# 排除黑色像素
if r + g + b > 0:
# 计算颜色比例
total = r + g + b
red_ratio = r / total
green_ratio = g / total
blue_ratio = b / total
# 判断颜色类型并增加计数器
if red_ratio > 0.8 and green_ratio < 0.2 and blue_ratio < 0.2:
color_count["red"] += 1
elif red_ratio < 0.2 and green_ratio > 0.8 and blue_ratio < 0.2:
color_count["green"] += 1
elif red_ratio < 0.2 and green_ratio < 0.2 and blue_ratio > 0.8:
color_count["blue"] += 1
elif red_ratio > 0.8 and green_ratio > 0.8 and blue_ratio < 0.2:
color_count["yellow"] += 1
elif red_ratio > 0.8 and green_ratio < 0.2 and blue_ratio > 0.8:
color_count["purple"] += 1
elif red_ratio > 0.8 and green_ratio > 0.8 and blue_ratio > 0.8:
color_count["white"] += 1
else:
color_count["gray"] += 1
# 计算颜色比例
total_count = sum(color_count.values())
color_ratio = {k: v / total_count for k, v in color_count.items()}
print(color_ratio)
```
这段代码会统计图片中红色、绿色、蓝色、黄色、紫色、白色和灰色像素的数量,并计算它们的比例,最后输出一个字典,其中键是颜色名称,值是颜色比例。你可以根据需要修改代码,例如添加更多的颜色类型或修改颜色比例的计算方式。
阅读全文