Create lookup table for use with bwlookup
lut = makelut(fun,n)
lut = makelut(fun,n) returns a lookup table for use with bwlookup. fun is a function that accepts an n-by-n matrix of 1's and 0's as input and return a scalar. n can be either 2 or 3. makelut creates lut by passing all possible 2-by-2 or 3-by-3 neighborhoods to fun, one at a time, and constructing either a 16-element vector (for 2-by-2 neighborhoods) or a 512-element vector (for 3-by-3 neighborhoods). The vector consists of the output from fun for each possible neighborhood. fun must be a function handle.
Parameterizing Functions, in the MATLAB Mathematics documentation, explains how to provide additional parameters to the function fun.
Construct a lookup table for 2-by-2 neighborhoods. In this example, the function passed to makelut returns TRUE if the number of 1's in the neighborhood is 2 or greater, and returns FALSE otherwise.
f = @(x) (sum(x(:)) >= 2); lut = makelut(f,2) lut = 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1