我正在使用skimage.feature的local_binary_pattern,其统一模式如下:
>>> from skimage.feature import local_binary_pattern
>>> lbp_image=local_binary_pattern(some_grayscale_image,8,2,method='uniform')
>>> histogram=scipy.stats.itemfreq(lbp_image)
>>> print histogram
[[ 0.00000000e+00 1.57210000e+04]
[ 1.00000000e+00 1.86520000e+04]
[ 2.00000000e+00 2.38530000e+04]
[ 3.00000000e+00 3.23200000e+04]
[ 4.00000000e+00 3.93960000e+04]
[ 5.00000000e+00 3.13570000e+04]
[ 6.00000000e+00 2.19800000e+04]
[ 7.00000000e+00 2.46530000e+04]
[ 8.00000000e+00 2.76230000e+04]
[ 9.00000000e+00 4.88030000e+04]]
当我在附近拍摄8个像素时,预计会获得59个不同的LBP码(因为统一的方法),但它只给了我9个不同的LBP码。更一般地,总是返回P + 1标签(其中P是邻居的数量)。
这是另一种统一的方法,还是我误解了什么?
答案 0 :(得分:14)
好问题。请查看LBP example中的gallery。具体来说,请看下图:
new Thread(
new Runnable() {
public void run() {
selectedMatch = RiotAPI.getMatch(matchID);
((YourActivity)getContext()).runOnUiThread(new Runnable(){
public void run(){
championName.setText(String.valueOf(selectedMatch.getDuration()));
}
});
}
}).start();
,因此结果仅包含所有黑点都相邻且所有白点都相邻的模式。 所有其他组合都标有“非均匀”字样。'uniform'
,而不是'uniform'
(请参阅API docs),其中" nri"表示非旋转不变量。这意味着'nri_uniform'
旋转不变。结果,表示为00001111的边(0s和1s表示上图中的黑点和白点)被收集到与00111100相同的箱中(0是相邻的,因为我们从前到后环绕)。希望有所帮助!如果您还没有,LBP example值得一看。我听说某人花了很多时间在上面;)