python - ndarray中列表的出现
问题描述
我有一个 RGB 图像 -ndarray-,我想计算此图像中某些颜色的出现,例如 [255,0,0] 或 [0,0,255]。
图像数据示例
np.ones((3, 3, 3)) * 255
array([[[255., 255., 255.],
[255., 255., 255.],
[255., 255., 255.]],
[[255., 255., 255.],
[255., 255., 255.],
[255., 255., 255.]],
[[255., 255., 255.],
[255., 255., 255.],
[255., 255., 255.]]])
所以结果我想要这样的东西
{
'[255,255,255]' : 9,
}
解决方案
一种解决方案可能是Counter
函数:
from collections import Counter
import numpy as np
# Generate some data
data = np.ones((10, 20, 3)) * 255
# Convert to tuple list
data_tuple = [ tuple(x) for x in data.reshape(-1,3)]
Counter(data_tuple)
回报:
Counter({(255.0, 255.0, 255.0): 200})
推荐阅读
- docker - 从 gitlab 运行器上的 docker 容器访问存储库的问题
- css - 响应式网站无法根据宽度工作
- objective-c - Objective-C 中通常用于 Swift 的可空性相关属性是否也适用于 ObjC-ObjC 调用?
- python - 测试必须通过调用委托来调用的函数
- java - 在一个对象上嵌套同步块
- python - docker-compose 将主机上的文件内容更改同步到安装在 docker 容器上的卷
- python - 如何使用 qyery 返回无在 Django 列表视图上获取外键的名称
- python - 正则表达式匹配一个字符串及其周围的 2 个字符
- html - 如何为最近的祖先提供 XPath?
- ios - Ionic IOS 谷歌登录移动“location.protocol”科尔多瓦