我想计算图像的相同像素频率。 src ndarray:
[
[1, 2, 3],
[1, 2, 3],
[5, 6, 7]
]
我想要的结果是:
[
[1, 2, 3, 2],
[5, 6, 7, 1]
]
但是numpy.unique或numpy.bincount无法正常工作。
答案 0 :(得分:0)
这会有效吗?
from collections import Counter
import numpy as np
In [17]: freq = Counter(np.array(lst).flatten())
In [18]: freq
Out[18]: Counter({1: 2, 2: 2, 3: 2, 5: 1, 6: 1, 7: 1})
答案 1 :(得分:0)
你在处理[0..255]范围内的RGB值吗?在这种情况下,您可以试试这个。
你从:
开始import numpy as np
a = np.array([[1,2,3],[1,2,3],[5,6,7]])
在([0..255],[0..255],[0..255])和[0..16777215]之间创建一个双射:
a_ = a[:,0]*256**2 + a[:,1]*256 + a[:,0]
申请bincount:
b_ = np.bincount(a_)
应用互惠双射:
h = []
for i,e in enumerate(b_):
if e:
b = i%256
g = (i//256)%256
r = i/65536
h.append([r,g,b,e])
你想要的是什么?