# Local Binary Pattern(LBP)

11 views (last 30 days)

Show older comments

I am trying to execute local binary pattern in MATLAB using the image processing toolbox. When i execute I can't get a LBP image and LBP histogram.

clear all;

close all;

clc;

I=imread('test.png');

figure,imshow(I)

%%Crop

I2 = imcrop(I);

figure, imshow(I2)

w=size(I2,1);

h=size(I2,2);

%%LBP

scale = 2.^[7 6 5; 0 -inf 4; 1 2 3];

for i=2:w-1

for j=2:h-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(LBP)

figure,imhist(LBP)

what is the issue.i am supposed to get numbers from 0 to 255 but i am not getting it. how to correct it?

##### 12 Comments

Image Analyst
on 3 Feb 2019

Try

imshow(LBP, []);

and try my attached LBP demo.

sajjad nasiri
on 28 May 2019

### Answers (10)

madhulika jain
on 22 Sep 2011

Izzo
on 3 Dec 2011

hey i think i got your problem, because i already did LBP. First, make sure that u have converted the image into grayscale form. Second, you have to replace the test image with the new LBP image, therefore: instead of this code

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;

try to change into:

I2(i-1,j-1)=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;

because i have problem like that too, then my supervisor solve into this for me :P

##### 0 Comments

Image Analyst
on 22 Sep 2011

Change the last few lines of your code to this:

subplot(2,2,3);

imshow(LBP, []);

subplot(2,2,4);

[pixelCounts, GLs] = imhist(uint8(LBP));

bar(GLs, pixelCounts);

##### 10 Comments

Fatemeh Shomal Zadeh
on 13 Feb 2021

Hi,

I have a cell array data of grayscale images 20x5. (20 images at 5 frames)

I want to use LBP to analyze the background scatter points of my images and see if I can find any differences between their values, as my data covers the healthy and unhealthy patients.

Is there anyone who can help me for that. I have been using this code;

features = extractLBPFeatures(images{20,1})

subplot(2,2,3);

imshow(features, []);

subplot(2,2,4);

[pixelCounts, GLs] = imhist(uint8(features));

bar(GLs, pixelCounts);

But I think it does not show me what I want. As the output is a single array. I am not very familiar with LBP, can you please hep me regarding how the output should be?

Walter Roberson
on 14 Feb 2021

But I think it does not show me what I want

We do not have your image to test with, and we do not know what kinds of output you expect to see.

remo
on 1 Dec 2011

hi CNN,

Sorry for being a Noob. I just cant understand why you use 'scale = 2.^[7 6 5; 0 -inf 4; 1 2 3]; ' in this program. can you explain?

##### 7 Comments

Muhammad Amirul Hafiz Sahful Bahri
on 29 Mar 2019

hi, I would like to know how did you get those number [ 7 6 5; 0 -inf 4; 1 2 3] ?

Did you calculate it?

Image Analyst
on 29 Mar 2019

Unhide the comments above and you'll see a desciption of how those are computed.

anusha
on 24 Sep 2014

Edited: DGM
on 11 Feb 2023

u can try this code

clear all;

close all;

I=imread('cameraman.tif');

I=rgb2gray(I);

I1=imcrop(I);

[w h]=size(I1);

for i=2:w-1

for j=2:h-1

val=I1(i,j);

scale=2.^[0 1 2;7 -inf 3;6 5 4];

mat=[I1(i-1,j-1) I1(i-1,j) I1(i-1,j+1);

I1(i,j-1) I1(i,j) I1(i,j+1);

I1(i+1,j-1) I1(i+1,j) I1(i+1,j+1)];

mat=mat>=val;

fin=mat.*scale;

I1(i,j)=sum(sum(fin));

end

end

imshow(I1,[]);

##### 0 Comments

Nikolay S.
on 16 Mar 2015

##### 0 Comments

Ktk
on 29 Oct 2017

the code is not giving me any values. can anyone help? thanks!

##### 3 Comments

Image Analyst
on 1 Jun 2022

@SATISH SONWANE, isn't that the usual way? You can change it if you want. Why would you want to?

Vrushali Patil
on 2 Apr 2020

Can anyone please help me to apply lbp on image frames directly without croping the image?

##### 1 Comment

Image Analyst
on 2 Apr 2020

Image Analyst
on 2 Apr 2020

See my attached LBP demo.

##### 3 Comments

PAVITHRA
on 22 Feb 2023

If i run this demo code for brain tumor image,the lbp image becomes red color why?

Image Analyst
on 22 Feb 2023

If you want me to look at your code, start a new question and attach your code and image.

Dehia
on 15 Jul 2023

Is it normal to have a large number of zeros and a few non-zero values in the LBP feature array?

##### 1 Comment

Image Analyst
on 16 Jul 2023

For 3x3 submatrices where all the values are the same, you'd get zero. This can happen fairly often.

### See Also

### Categories

### Products

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!