[英]How to calculate the lbp codes at the ends of the images?
例如,坐標為(1,1)的像素的lbp代碼可以用像素(0,0)進行計算; (0,1); (0,2); (1,2); (2,2); (2,1); (2,0); (1,0),但極值像素不具有這8個鄰域像素,即,像素(0,0)僅具有3個鄰居。
因為我已經使用sicikit映像獲得了LBP映像,所以出現了這個問題,代碼如下:
lbp = feature.local_binary_pattern (gray, 8, 1, 'ror')
然后我打印了灰色圖像的值並得到了這些值:
[[185 185 190 ... 176 172 178]]
[183 180 181 ... 194 185 175]
[203 199 199 ... 201 193 179]
...
[205 188 182 ... 183 183 182]
[207 197 194 ... 193 190 186]
[206 201 201 ... 201 199 197]]
我還打印了LBP圖像的值並得到了這些值:
[[ 1. 17. 1. ... 15. 31. 1.]
[ 27. 255. 127. ... 7. 7. 31.]
[ 0. 31. 31. ... 1. 31. 15.]
...
[ 17. 31. 63. ... 63. 111. 31.]
[ 0. 31. 31. ... 15. 15. 7.]
[ 1. 25. 17. ... 0. 1. 1.]]
我知道,例如,右上角像素的lbp碼是正確的,因為它提供的值為7,但我不明白如何獲得極限值的LBP碼。 謝謝。
函數skimage.feature.local_binary_pattern
在skimage.feature.local_binary_pattern
執行零填充。 結果,實際上是從填充圖像中計算出LBP代碼:
[[ 0 0 0 0 ... 0 0 0 0]
[ 0 185 185 190 ... 176 172 178 0]
[ 0 183 180 181 ... 194 185 175 0]
[ 0 203 199 199 ... 201 193 179 0]
...
[ 0 205 188 182 ... 183 183 182 0]
[ 0 207 197 194 ... 193 190 186 0]
[ 0 206 201 201 ... 201 199 197 0]
[ 0 0 0 0 ... 0 0 0 0]]
在上圖上使用'ror'
方法時,與最左上角像素相對應的LBP為:
0 0 0 0 0 0
0 185 185 >> 0 1 >> 00000001 >> 1
0 183 180 0 0 0
對應於第一行第二個像素的LBP變為:
0 0 0 0 0 0
185 185 190 >> 1 1 >> 00010001 >> 17
183 180 181 0 0 0
與最右上角像素相對應的LBP為:
0 0 0 0 0 0
172 178 0 >> 0 0 >> 000000001 >> 1
185 175 0 1 0 0
... 等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.