[[7 7 7 6 6 6 7 8
6 6 7 7 6 7 7 8
6 7 7 7 7 7 8 8
6 7 7 7 7 7 7 7
6 7 7 7 6 6 6 6
6 7 7 6 6 6 6 6
6 7 7 7 7 7 8 9
7 8 8 8 8 9 10 11]]
我正在做一些图像处理,这是一个8x8灰度数组。我试图找到这个数组中的灰度级数。是否有任何特定的功能或简单的方法使用python找到相同的。任何帮助将不胜感激。
答案 0 :(得分:1)
len(set(gray[0])) # gray = [[gray levels]]
创建一个存储列表中唯一值的集合,然后计算元素。
答案 1 :(得分:1)
除了使用普通Python发布优秀答案的@chris之外:
使用numpy.unique获取所有灰度级别:
>>> np.unique(gray[0])
array([6,7,8,9,10,11])
你甚至可以返回给出唯一值的原始数组的索引!
文档示例:
>>> a = np.array(['a', 'b', 'b', 'c', 'a'])
>>> u, indices = np.unique(a, return_index=True)
>>> u
array(['a', 'b', 'c'],
dtype='|S1')
>>> indices
array([0, 1, 3])
>>> a[indices]
array(['a', 'b', 'c'],
dtype='|S1')
答案 2 :(得分:0)
>>> a = np.array([[7,7,7,6,6,6,7,8
... ,6,6,7,7,6,7,7,8
... ,6,7,7,7,7,7,8,8
... ,6,7,7,7,7,7,7,7
... ,6,7,7,7,6,6,6,6
... ,6,7,7,6,6,6,6,6
... ,6,7,7,7,7,7,8,9
... ,7,8,8,8,8,9,1,0,11]])
>>> a
array([[ 7, 7, 7, 6, 6, 6, 7, 8, 6, 6, 7, 7, 6, 7, 7, 8, 6,
7, 7, 7, 7, 7, 8, 8, 6, 7, 7, 7, 7, 7, 7, 7, 6, 7,
7, 7, 6, 6, 6, 6, 6, 7, 7, 6, 6, 6, 6, 6, 6, 7, 7,
7, 7, 7, 8, 9, 7, 8, 8, 8, 8, 9, 1, 0, 11]])
>>> np.unique(a)
array([ 0, 1, 6, 7, 8, 9, 11])
>>> np.unique(a).shape[0]
7