<s> '''<STR_LIT>''' <EOL> import pyvision as pv <EOL> import numpy as np <EOL> LBP_CLASSIC = [ <EOL> [ - <NUM_LIT:1.0> , - <NUM_LIT:1.0> ] , <EOL> [ <NUM_LIT:0.0> , - <NUM_LIT:1.0> ] , <EOL> [ <NUM_LIT:1.0> , - <NUM_LIT:1.0> ] , <EOL> [ <NUM_LIT:1.0> , <NUM_LIT:0.0> ] , <EOL> [ <NUM_LIT:1.0> , <NUM_LIT:1.0> ] , <EOL> [ <NUM_LIT:0.0> , <NUM_LIT:1.0> ] , <EOL> [ - <NUM_LIT:1.0> , <NUM_LIT:1.0> ] , <EOL> [ - <NUM_LIT:1.0> , <NUM_LIT:0.0> ] , <EOL> ] <EOL> LBP_RAD1 = np . array ( [ [ <NUM_LIT:0.0> , <NUM_LIT:1.0> ] , [ <NUM_LIT> , <NUM_LIT> ] , [ <NUM_LIT:1.0> , <NUM_LIT> ] , [ <NUM_LIT> , - <NUM_LIT> ] , [ <NUM_LIT> , - <NUM_LIT:1.0> ] , [ - <NUM_LIT> , - <NUM_LIT> ] , [ - <NUM_LIT:1.0> , - <NUM_LIT> ] , [ - <NUM_LIT> , <NUM_LIT> ] ] ) <EOL> LBP_RAD2 = <NUM_LIT> * LBP_RAD1 <EOL> LBP_RAD3 = <NUM_LIT> * LBP_RAD1 <EOL> LBP_RAD4 = <NUM_LIT> * LBP_RAD1 <EOL> LBP_RAD8 = <NUM_LIT> * LBP_RAD1 <EOL> def lbp ( im , pattern = LBP_CLASSIC ) : <EOL> '''<STR_LIT>''' <EOL> im = pv . Image ( im . asOpenCVBW ( ) ) <EOL> mat = im . asMatrix2D ( ) <EOL> lbp = np . zeros ( mat . shape , dtype = np . uint8 ) <EOL> w , h = mat . shape <EOL> bit = <NUM_LIT:1> <EOL> for dx , dy in pattern : <EOL> affine = pv . AffineTranslate ( - dx , - dy , ( w , h ) ) <EOL> mat2 = affine . transformImage ( im ) . asMatrix2D ( ) <EOL> lbp += bit * ( mat < mat2 ) <EOL> bit = bit * <NUM_LIT:2> <EOL> return lbp </s>
