applylut
Neighborhood operations on binary images using lookup tables
applylut
is not recommended. Use bwlookup
instead.
Syntax
Description
Examples
Perform Erosion Using 2-by-2 Neighborhood
Create the lookup table.
lutfun = @(x)(sum(x(:))==4); lut = makelut(lutfun,2);
Read image into the workspace and then apply the lookup table to the image. An output pixel is on
only if all four of the input pixel's neighborhood pixels are on
.
BW1 = imread("text.png");
BW2 = applylut(BW1,lut);
Show the original image and the eroded image.
imshow(BW1)
imshow(BW2)
Input Arguments
BW
— Input image
2-D binary image
Input image, specified as a 2-D binary image. For numeric input,
any nonzero pixels are considered to be 1
(true
).
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
lut
— Lookup table of output pixel values
16-element numeric vector | 512-element numeric vector
Lookup table of output pixel values, specified as a 16- or 512-element vector as returned
by makelut
.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
Output Arguments
A
— Output image
binary image | grayscale image
Output image, returned as a grayscale or binary image whose distribution of pixel values
are determined by the content of the lookup table, lut
. The output image
J
is the same size as the input image I
.
If all elements of
lut
are0
or1
, thenA
has data typelogical
.If all elements of
lut
are integers between 0 and 255, thenA
has data typeuint8
.For all other cases,
A
has data typedouble
.
Data Types: double
| uint8
| logical
Algorithms
applylut
performs a neighborhood operation on a binary image by producing
a matrix of indices into lut
, and then replacing the indices with the actual
values in lut
. The specific algorithm used depends on whether you use 2-by-2
or 3-by-3 neighborhoods.
2-by-2 Neighborhoods
For 2-by-2 neighborhoods, length(lut)
is 16. There are four pixels in
each neighborhood, and two possible states for each pixel, so the total number of permutations
is 24 = 16.
To produce the matrix of indices, applylut
convolves the binary image
BW
with this matrix.
8 2 4 1
The resulting convolution contains integer values in the range [0, 15].
applylut
uses the central part of the convolution, of the same size as
BW
, and adds 1 to each value to shift the range to [1, 16]. The function
then constructs A
by replacing the values in the cells of the index matrix
with the values in lut
that the indices point to.
3-by-3 Neighborhoods
For 3-by-3 neighborhoods, length(lut)
is 512. There are nine pixels in
each neighborhood, and two possible states for each pixel, so the total number of permutations
is 29 = 512.
To produce the matrix of indices, applylut
convolves the binary image
BW
with this matrix.
256 32 4 128 16 2 64 8 1
The resulting convolution contains integer values in the range [0, 511].
applylut
uses the central part of the convolution, of the same size as
BW
, and adds 1 to each value to shift the range to [1, 512]. It then
constructs A
by replacing the values in the cells of the index matrix with
the values in lut
that the indices point to.
Version History
Introduced before R2006aR2012b: applylut
is not recommended
Starting in R2012b, use bwlookup
to perform neighborhood operations on
binary images using lookup tables. For bwlookup
, the data type of the
returned image is the same as the data type of the lookup table. bwlookup
supports code generation. There are no plans to remove applylut
at this
time.
To update your code, replace instances of applylut
with
bwlookup
. You do not need to change the input arguments.
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)