我正在尝试计算图像中独特颜色的数量。我有一些代码,我认为应该可以工作,但是当我在图像上运行它时,它说我有 252 种不同的颜色,可能是 16,777,216\xe2\x80\xac。考虑到图像是 BGR,这似乎是错误的,所以它们不应该有更多不同的颜色(数千而不是数百?)?
\n\ndef count_colours(src):\n unique, counts = np.unique(src, return_counts=True)\n print(counts.size)\n return counts.size\n\nsrc = cv2.imread(\'../../images/di8.jpg\')\nsrc = imutils.resize(src, height=300)\ncount_colours(src) # outputs 252 different colours!? only?\n
Run Code Online (Sandbox Code Playgroud)\n\n这个值正确吗?如果不是,我该如何修复我的功能count_colours()
?
编辑:这是正确的吗?
\n\ndef count_colours(src):\n unique, counts = np.unique(src.reshape(-1, src.shape[-1]), axis=0, return_counts=True)\n return counts.size\n
Run Code Online (Sandbox Code Playgroud)\n
如果您查看unique
返回的 s,我很确定您会发现它们是标量。您需要使用axis
关键字:
>>> import numpy as np
>>> from scipy.misc import face
>>>
>>> img = face()
>>> np.unique(img.reshape(-1, img.shape[-1]), axis=0, return_counts=True)
(array([[ 0, 0, 5],
[ 0, 0, 7],
[ 0, 0, 9],
...,
[255, 248, 255],
[255, 249, 255],
[255, 252, 255]], dtype=uint8), array([1, 2, 2, ..., 1, 1, 1]))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11873 次 |
最近记录: |