【发布时间】:2011-10-01 02:09:40
【问题描述】:
我想实现统一的 LBP。这是维基百科对统一 LBP 的定义。
一个局部二进制模式被称为统一,如果二进制模式 最多包含两个从 0 到 1 的按位转换,反之亦然 当循环遍历位模式时。例如, 模式 00000000(0 个转换)、01110000(2 个转换)和 11001111(2 个过渡)是均匀的,而模式 11001001(4 转换)和 01010010(6 次转换)不是。在计算中 在 LBP 标签中,使用统一的模式,因此存在 每个统一模式和所有非统一模式的单独标签 模式用单个标签标记。例如,当使用 (8,R) 邻域,共有 256 个模式,其中 58 个是 统一,产生 59 种不同的标签。
我已经为 LBP 编写了代码,但不知道如何将其转换为统一的 LBP。下面是 LBP 的代码。
for i=2:m-1
for j=2:n-1
J0=I2(i,j);
I3(i-1,j-1)=I2(i-1,j-1)>J0;
I3(i-1,j)=I2(i-1,j)>J0;
I3(i-1,j+1)=I2(i-1,j+1)>J0;
I3(i,j+1)=I2(i,j+1)>J0;
I3(i+1,j+1)=I2(i+1,j+1)>J0;
I3(i+1,j)=I2(i+1,j)>J0;
I3(i+1,j-1)=I2(i+1,j-1)>J0;
I3(i,j-1)=I2(i,j-1)>J0;
LBP(i,j)=I3(i-1,j-1)*2^7+I3(i-1,j)*2^6+I3(i-1,j+1)*2^5+I3(i,j+1)*2^4+I3(i+1,j+1)*2^3+I3(i+1,j)*2^2+I3(i+1,j-1)*2^1+I3(i,j-1)*2^0;
end
end
figure,imshow(uint8(LBP))
任何帮助将不胜感激。我正在使用 MATLAB。
【问题讨论】:
-
您是更想了解Uniform LBP的概念,还是已经了解,只是不知道如何修改代码?
-
理解概念但不知道如何修改代码..
-
这样的话,这个问题还是更适合StackOverflow。我将把这个迁移到那里,这样你这次就不必删除/重新发布了。
标签: image-processing computer-vision