我知道如何检查8-neighbourhood
中的matlab
(即; nlfilter)。但是,我想将更重复的值分配给中心值。所以,比方说我在8邻域中有以下值:
2-values = 56
3值= 64
1值= 70
1值= 87
1值= 65
在这种情况下,我们会将64
指定给中心像素。
我们怎么能这样做?
感谢。
答案 0 :(得分:2)
M =向量X的模式(X)计算M作为样本模式,或大多数 经常 X中出现的值。
您的数据示例:
x = [56 56 64 64 64 70 87 65];
mode(x)
ans =
64
但这只会让你获得最常见的价值。
如果你想要数组中每个唯一项的计数,你可以这样做,
unqx = unique(x);
unqx =
56 64 65 70 87
valueCount = histc(x, unqx)
ans =
2 3 1 1 1
然后,您可以对此进行排序并获取第一个N
值
valueCount = sort(valueCount, 'descend');
% Use unqx(valueCount(1:N))