用skimage内置图片写颜色直方图
时间: 2024-05-04 16:17:38 浏览: 67
可以使用scikit-image库中的`histogram`函数来绘制颜色直方图,以下是示例代码:
```python
from skimage import io, exposure
import matplotlib.pyplot as plt
# 读取图片
img = io.imread('image.jpg')
# 将RGB图像转换为HSV图像
hsv_img = exposure.rgb2hsv(img)
# 获取三个通道的像素值
h_values, bins = exposure.histogram(hsv_img[..., 0])
s_values, bins = exposure.histogram(hsv_img[..., 1])
v_values, bins = exposure.histogram(hsv_img[..., 2])
# 绘制直方图
fig, axs = plt.subplots(1, 3, figsize=(12, 4))
axs[0].bar(bins[:-1], h_values, width=0.005)
axs[0].set_title('Hue')
axs[1].bar(bins[:-1], s_values)
axs[1].set_title('Saturation')
axs[2].bar(bins[:-1], v_values)
axs[2].set_title('Value')
plt.show()
```
其中,`rgb2hsv`函数将RGB图像转换为HSV图像,`histogram`函数用于获取直方图数据,`bar`函数用于绘制直方图。以上代码将会绘制出三张子图,分别表示颜色直方图中的Hue、Saturation和Value通道。
阅读全文