具有 scikit-image local_binary_pattern 函数的统一 LBP
Uniform LBP with scikit-image local_binary_pattern function
我正在使用 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代码。更一般地,总是 return P+1 个标签(其中 P 是邻居的数量)。
这是另一种统一的方法,还是我理解错了什么?
好问题。看看LBP example in the gallery。具体看下图:
- 均匀度: 由于您选择了
'uniform'
,结果仅包括所有黑点相邻和所有白点相邻的图案。 全部 其他组合标注为'non-uniform'.
- 旋转不变性: 注意你选择的是
'uniform'
,而不是'nri_uniform'
(见API docs),其中"nri"表示非旋转不变性。也就是说'uniform'
是旋转不变的。结果,表示为 00001111 的边(0 和 1 代表上图中的黑点和白点)被收集到与 00111100 相同的 bin 中(0 是相邻的,因为我们从前到后环绕)。
- 旋转不变,均匀组合:考虑旋转不变性,有9个独特的均匀组合:
- 00000000
- 00000001
- 00000011
- 00000111
- 00001111
- 00011111
- 00111111
- 01111111
- 11111111
- 不均匀的结果:如果您更仔细地查看结果,实际上有 10 个 bin,而不是 9 个。第 10 个 bin 将所有不均匀的结果集中在一起。
希望对您有所帮助!如果您还没有,LBP example 值得一看。我听说 有人 花了很多时间在上面 ;)
我正在使用 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代码。更一般地,总是 return P+1 个标签(其中 P 是邻居的数量)。
这是另一种统一的方法,还是我理解错了什么?
好问题。看看LBP example in the gallery。具体看下图:
- 均匀度: 由于您选择了
'uniform'
,结果仅包括所有黑点相邻和所有白点相邻的图案。 全部 其他组合标注为'non-uniform'. - 旋转不变性: 注意你选择的是
'uniform'
,而不是'nri_uniform'
(见API docs),其中"nri"表示非旋转不变性。也就是说'uniform'
是旋转不变的。结果,表示为 00001111 的边(0 和 1 代表上图中的黑点和白点)被收集到与 00111100 相同的 bin 中(0 是相邻的,因为我们从前到后环绕)。 - 旋转不变,均匀组合:考虑旋转不变性,有9个独特的均匀组合:
- 00000000
- 00000001
- 00000011
- 00000111
- 00001111
- 00011111
- 00111111
- 01111111
- 11111111
- 不均匀的结果:如果您更仔细地查看结果,实际上有 10 个 bin,而不是 9 个。第 10 个 bin 将所有不均匀的结果集中在一起。
希望对您有所帮助!如果您还没有,LBP example 值得一看。我听说 有人 花了很多时间在上面 ;)