我想計算圖像的相同像素頻率。 在src ndarray:嵌套numpy數組中的計數頻率
[
[1, 2, 3],
[1, 2, 3],
[5, 6, 7]
]
我想要的結果是:
[
[1, 2, 3, 2],
[5, 6, 7, 1]
]
但numpy.unique或numpy.bincount不能工作。
我想計算圖像的相同像素頻率。 在src ndarray:嵌套numpy數組中的計數頻率
[
[1, 2, 3],
[1, 2, 3],
[5, 6, 7]
]
我想要的結果是:
[
[1, 2, 3, 2],
[5, 6, 7, 1]
]
但numpy.unique或numpy.bincount不能工作。
會這樣工作。
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})
看起來不像那是所需的輸出。矩陣中的每一行都被認爲是唯一的「值」,並且您想要統計您看到每個「值」的次數。 – rayryeng
您是否正在處理[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])
你想會在H什麼
的可能重複http://stackoverflow.com/questions/30879446/efficiently-count-the-number-of-occurrences-of-unique-subarrays-in-numpy – Divakar
太棒了。但我也想計算相同的像素 – Levi
鏈接一個更相關的問題,處理計數。你檢查了最新的鏈接問題嗎? – Divakar