python - 如何在 python 上绘制 8 位图像的 16,32 和 64 bin 直方图?
问题描述
我有一个灰度图像数组
Array
像这样的数组样本;
array([[[142, 142, 142],
[143, 143, 143],
[142, 142, 142],
...,
[147, 147, 147],
[148, 148, 148],
[143, 143, 143]],
[[142, 142, 142],
[142, 142, 142],
[142, 142, 142],
...,
[148, 148, 148],
[150, 150, 150],
[147, 147, 147]],
数组类型是
Array.dtype
dtype('uint8')
我想绘制这个数组的 16、32 和 64 位直方图,有人知道吗?
解决方案
我注意到你有一个 RGB 图像(3 个通道)。您可能希望按每个通道(红色、绿色和蓝色)可视化其直方图。
您可以使用pandas
. 例如,给定一个img
与变量具有相同数据结构的 RGB 图像数组Array
,您可以将每个通道的直方图转换为DataFrame
import pandas as pd
df = pd.DataFrame({
'red': img[...,0].ravel(),
'green': img[...,1].ravel(),
'blue': img[...,2].ravel()
})
然后使用plot.hist
df.plot.hist(bins=n_bins, alpha=.3, xlim=[0,255], color=['red', 'green', 'blue'])
n_bins
箱子的数量在哪里。
为了n_bins=16
为了n_bins=32
为了n_bins=64
推荐阅读
- python - Python在带有返回调用的函数下添加多重检查
- java - 使用java在谷歌驱动器中获取上传的文件名?
- reactjs - react-select的yup验证如何
- php - Laravel 5.6:如果字段存在且未更改,则跳过验证步骤。如果字段已更改,则为必填项 - 但不是唯一的
- python - 使用python查找8D向量的大小
- css - 如何使用 CSS 更改 JavaFX Spinner 的按钮宽度?
- c++ - 如果用户到达 else (C++),则返回到“cin”的开头
- asp.net - asp:textbox 在文本更改时调用 asp:button 处理程序
- python - nltk.download('stopwords') 在 Docker 中有权限错误
- ios - 尽管在其他地方使用相同的代码,但“下标”的模糊使用?