找到灰度级数

时间:2014-12-17 10:42:21

标签: python image image-processing

[[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找到相同的。任何帮助将不胜感激。

3 个答案:

答案 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