Starting from each pixel, compare it's value with each of it's 8 neighbors,
always going in the same direction around the center pixel. Record a 0 if
the center pixel is dimmer, or a 1 if it was brighter. Because we are looking
at relative intensity, variations in lighting are eliminated.
|
(clockwise, |
Where there are few transitions from 0 to 1 or back, there is probably
an edge. The angle of the edge is given by the number of digits which are
the same before the first transition. e.g. 11100000 has a darker section
along the top, and only 1 transition. 10000011 has a darker secton on the
left and 2 transitions. 11101110 has a light line through the center horizontally
and 3 transitions.
Uniform Patterns: Those with 2 or fewer transitions are called Uniform
Patterns. Because these uniform patterns are of greater interest, we can
label them individually and then place all other patterns into a single label.
This reduces the total from 256 possible patterns to just 59 possible labels.
We can characterize the image (or part of an image) by developing a histogram
showing how many of each type of pattern label is present.
This data then works well with SVG Machine
Learning for texture classification.
Volume Local Binary Patterns (VLBP) when we want to look at changes
to each pixel over time, we could add comparisons to the prior and
next frames as well, but that means comparing the center pixel to 8 neighbors
in it's frame, and then to 9 pixels is the prior and 9 more in the next frame
for a total of 26 comparison bits. It turns out that this is not necessary.
We can make fewer comparisons with the next and previous frame, using only
the center pixel, and the neighbors above, below, left, and right. This reduces
the data to 18 bits.
See also: