# bwperim

Find perimeter of objects in binary image

## Syntax

• `BW2 = bwperim(BW)` example
• `BW2 = bwperim(BW,conn)`

## Description

example

````BW2 = bwperim(BW)` returns a binary image that contains only the perimeter pixels of objects in the input image `BW`. A pixel is part of the perimeter if it is nonzero and it is connected to at least one zero-valued pixel. The default connectivity is 4 for two dimensions, 6 for three dimensions, and `conndef(ndims(BW), 'minimal')` for higher dimensions. If you do not specify a return value, `bwperim` displays the result in a figure window.This function supports code generation (see Tips).```
````BW2 = bwperim(BW,conn)` where `conn` specifies the desired connectivity.```

## Examples

collapse all

### Find Perimeter of Objects in Binary Image

Read binary image into workspace.

```BW = imread('circles.png'); ```

Calculate the perimeters of objects in the image.

```BW2 = bwperim(BW,8); ```

Display the original image and the perimeters side-by-side.

```imshowpair(BW,BW2,'montage') ```

## Input Arguments

collapse all

### `BW` — Input binary imagelogical or numeric matrix that must be 2-D, real, and nonsparse

Input binary image, specified as a logical or numeric matrix that must be 2-D, real, and nonsparse.

Example: `BW = imread('circles.png'); BW2 = bwperim(BW);`

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64` | `logical`

### `conn` — Connectivity`4` for 2-D (default) | `6` | `8` | `18` | `26` | 3-by-3-by-...-by-3 array of zeroes and ones

Connectivity, specified as one of the values in this table or a 3-by-3-by-...-by-3 array 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 around its center element.

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

Example: `BW2 = bwperim(BW,8);`

Data Types: `double` | `logical`

## Output Arguments

collapse all

### `BW2` — Output binary image containing only perimeter pixels of objectslogical array

Output image containing only perimeter pixels of objects, returned as a logical array.

## More About

collapse all

### Tips

• This function supports the generation of C code using MATLAB® Coder™. Note that if you choose the generic `MATLAB Host Computer` target platform, the function generates code that uses a precompiled, platform-specific shared library. Use of a shared library preserves performance optimizations but limits the target platforms for which code can be generated. For more information, see Understanding Code Generation with Image Processing Toolbox.

When generating code, note the following:

• `bwperim` supports only 2-D images.

• `bwperim` does not support a no-output-argument syntax.

• The connectivity matrix input argument, `conn`, must be a constant

## See Also

Was this topic helpful?

Get trial now