Python 具有scikit图像局部二进制模式函数的均匀LBP
我正在使用skimage.feature中的local_binary_模式和统一模式,如下所示:Python 具有scikit图像局部二进制模式函数的均匀LBP,python,feature-extraction,scikit-image,Python,Feature Extraction,Scikit Image,我正在使用skimage.feature中的local_binary_模式和统一模式,如下所示: >>> from skimage.feature import local_binary_pattern >>> lbp_image=local_binary_pattern(some_grayscale_image,8,2,method='uniform') >>> histogram=scipy.stats.itemfreq(lbp_imag
>>> 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是邻居的数量)
这是另一种统一的方法,或者我误解了什么?好问题。请看下面的图片。具体来说,请看下图:
- 一致性:由于您选择了
,因此结果仅包括所有黑点相邻且所有白点相邻的图案。所有其他组合均标记为“非均匀”“一致性”
- 旋转不变性:请注意,您选择的是
,而不是'uniform'
(请参见),其中“nri”表示非旋转不变性。这意味着'nri\u uniform'
是旋转不变的。因此,表示为00001111的边(0s和1s表示上图中的黑点和白点)被收集到与00111100相同的箱子中(0s是相邻的,因为我们从前面到后面环绕)'uniform'
- 旋转不变性,统一组合:考虑到旋转不变性,有9种独特的统一组合:
- 亿
- 00000001
- 00000011
- 00000111
- 00001111
- 00011111
- 00111111
- 0111111
- 11111111
- 非均匀结果:如果你更仔细地观察你的结果,实际上有10个箱子,而不是9个。第十个箱子将所有不均匀结果汇总在一起
希望有帮助!如果你还没有,那么这本书值得一看。我听说有人花了很多时间在这上面;) 现在一切都有意义了,谢谢。顺便说一下,我认为方法名称有点混乱。在大多数文献中,统一LBP代表简单的无旋转不变版本broken@GrayCygnus:谢谢你的通知!链接现在应该被修复了。来自主人本人。Tony在某个时候是Scikit-image的核心开发人员之一。据我所知,
'nri_uniform'
是非旋转不变的一致,将给出59维向量,但我得到了555维向量。为什么?怎样才能得到59-d描述符?555-d描述符从何而来?谢谢