MATLAB: Can blkproc function is used in LBP

digital image processingImage Processing Toolboxlbp

can you explain me fun function in blkproc below:
I = imread('liftingbody.png');
fun = @(x) std2(x)*ones(size(x));
I2 = blkproc(I,[32 32],fun);
figure, imshow(I), figure, imshow(I2,[])
what the function of 'fun' if I use LBP?
thx before

Best Answer

You can use the nlfilter function to implement this. It will be slow, though. Here's a mocked up implementation that you could try:
function out = computeLLBP(im,kernel_width)
%COMPUTELLBP - Compute Local Line Binary Pattern of an image.
validateattributes(im,{'numeric'},{'2d'},mfilename,'im',1);
validateattributes(kernel_width,{'numeric'},{'odd','numel',2},mfilename,'kernel_width',2);
out = nlfilter(im,kernel_width,@processLLBP);
function c = processLLBP(block)
sz = size(block);
center = (sz+1)/2;
vertical = block(: ,center(2))>block(center(1),center(2));
horizontal = block(center(1),: )>block(center(1),center(2));
llbpv = bin2dec( (int2str(vertical(1 :center(2)-1)))') +...
bin2dec(fliplr((int2str(vertical(center(2)+1:end )))'));
llbph = bin2dec( int2str(horizontal(1 :center(1)-1))) +...
bin2dec(fliplr(int2str(horizontal(center(1)+1:end ))));
c = hypot(llbpv,llbph);
end
end