| Image Processing Toolbox™ | ![]() |
BW2 = bwareaopen(BW,P)
BW2 = bwareaopen(BW,P,conn)
BW2 = bwareaopen(BW,P) removes from a binary image all connected components (objects) that have fewer than P pixels, producing another binary image, BW2. The default connectivity is 8 for two dimensions, 26 for three dimensions, and conndef(ndims(BW),'maximal') for higher dimensions.
BW2 = bwareaopen(BW,P,conn) specifies the desired connectivity. conn can have any of the following scalar values.
Value | Meaning |
|---|---|
Two-dimensional connectivities | |
4 | 4-connected neighborhood |
8 | 8-connected neighborhood |
Three-dimensional connectivities | |
6 | 6-connected neighborhood |
18 | 18-connected neighborhood |
26 | 26-connected neighborhood |
Connectivity can be defined in a more general way for any dimension by using for conn a 3-by-3-by-...-by-3 matrix of 0's and 1's. The 1-valued elements define neighborhood locations relative to the center element of conn. Note that conn must be symmetric about its center element.
BW can be a logical or numeric array of any dimension, and it must be nonsparse. The return value BW2 is of class logical.
The basic steps are
Determine the connected components.
L = bwlabeln(BW, conn);
Compute the area of each component.
S = regionprops(L, 'Area');
bw2 = ismember(L, find([S.Area] >= P));
Read in the image and display it.
originalBW = imread('text.png');
imshow(originalBW)

Remove all objects smaller than 50 pixels. Note the missing letters.
bwAreaOpenBW = bwareaopen(originalBW,50); figure, imshow(bwAreaOpenBW)

bwlabel, bwlabeln, conndef, regionprops
![]() | bwarea | bwboundaries | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |