我有一些像这样的图像:
# **INPUT**
img = np.array(
[
[
[0, 0, 255],
[0, 0, 255],
[0, 0, 255],
[0, 0, 255],
[0, 0, 255],
[0, 0, 255],
[0, 0, 255],
[0, 0, 255]
],
[
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[0, 255, 0],
[0, 255, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]
],
[
[255, 0, 0],
[0, 255, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]
],
[
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0],
[255, 0, 0]
],
])
我需要找到图像中每种颜色的计数,即以下3个元组的计数:[0,0,255],[255,0,0],[0,255,0]。在这种情况下:
# **Desired OUTPUT**
unique [[ 0 0 255]
[255 0 0]
[ 0 255 0]]
counts [8 21 3]
我就是这么做的:
print('AXIS 0 -----------------------------------')
unique0, counts0 = np.unique(img, axis=0, return_counts=True)
print('unique0 ', unique0)
print('counts0 ', counts0)
这是输出:
AXIS 0 -----------------------------------
unique0 [[[ 0 0 255]
[ 0 0 255]
[ 0 0 255]
[ 0 0 255]
[ 0 0 255]
[ 0 0 255]
[ 0 0 255]
[ 0 0 255]]
[[255 0 0]
[ 0 255 0]
[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]]
[[255 0 0]
[255 0 0]
[255 0 0]
[ 0 255 0]
[ 0 255 0]
[255 0 0]
[255 0 0]
[255 0 0]]
[[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]
[255 0 0]]]
counts0 [1 1 1 1]
我在尝试axis=1
(counts1[2115])时得到了类似的结果。你知道吗
我还尝试过将元组作为轴输入axis=(0, 1)
,返回错误TypeError: an integer is required (got type tuple)
。你知道吗
你知道我做错了什么吗?你知道吗
你可以做:
输出
首先使用^{} 沿第一个轴连接ndarray,然后使用^{} ,设置
return_counts=True
,这将返回展平2D
数组的计数:相关问题 更多 >
编程相关推荐