python opencv 判断图片颜色占比
时间: 2023-07-17 12:09:58 浏览: 572
要判断图片中各种颜色的占比,可以使用 Python 的 OpenCV 库来进行图像处理和颜色分析。下面是一个简单的示例代码:
```python
import cv2
import numpy as np
def get_color_percent(image_path, color):
# 读取图片
image = cv2.imread(image_path)
# 将图片转换为 HSV 颜色空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# 定义颜色范围
lower_color = np.array(color[0])
upper_color = np.array(color[1])
# 根据颜色范围创建掩膜
mask = cv2.inRange(hsv_image, lower_color, upper_color)
# 统计掩膜中白色像素的数量,即颜色占比
total_pixels = mask.shape[0] * mask.shape[1]
color_pixels = cv2.countNonZero(mask)
color_percent = (color_pixels / total_pixels) * 100
return color_percent
# 图片路径
image_path = 'path/to/your/image.jpg'
# 颜色范围(以 BGR 格式表示)
color_range = [(0, 0, 0), (255, 255, 255)]
# 获取颜色占比
percent = get_color_percent(image_path, color_range)
print('颜色占比:', percent, '%')
```
在示例代码中,首先使用 `cv2.imread()` 函数读取图片,并使用 `cv2.cvtColor()` 函数将图片转换为 HSV 颜色空间。然后通过设置颜色范围,使用 `cv2.inRange()` 函数创建颜色的掩膜。接着使用 `cv2.countNonZero()` 函数统计掩膜中非零像素的数量,即颜色的像素数量。最后计算颜色占比并返回结果。
你可以根据需要修改 `image_path` 和 `color_range` 变量来适应你的实际情况。注意,颜色范围是以 BGR 格式表示,你可以根据需要设置不同的颜色范围。
阅读全文