Contents

vision.BlobAnalysis System object

Package: vision

Properties of connected regions

Description

The BlobAnalysis object computes statistics for connected regions in a binary image.

Use the step syntax below with input binary image, BW, blob analysis object, H, and any optional properties. The step method computes and returns statistics of the input binary image depending on the property values specified. The order of the returned values when there are multiple outputs are in the order they are described below:

[AREA,CENTROID,BBOX] = step(H,BW) returns the area, centroid and the bounding box of the blobs when the AreaOutputPort, CentroidOutputPort and BoundingBoxOutputPort properties are set to true. These are the only properties that are set to true by default. If you set any additional properties to true, the corresponding outputs follow the AREA,CENTROID, and BBOX outputs.

[___,MAJORAXIS] = step(H,BW) computes the major axis length MAJORAXIS of the blobs found in input binary image BW when the MajorAxisLengthOutputPort property is set to true.

[___,MINORAXIS] = step(H,BW) computes the minor axis length MINORAXIS of the blobs found in input binary image BW when the MinorAxisLengthOutputPort property is set to true.

[___,ORIENTATION] = step(H,BW) computes the ORIENTATION of the blobs found in input binary image BW when the OrientationOutputPort property is set to true.

[___,ECCENTRICITY] = step(H,BW) computes the ECCENTRICITY of the blobs found in input binary image BW when the EccentricityOutputPort property is set to true.

[___,EQDIASQ] = step(H,BW) computes the equivalent diameter squared EQDIASQ of the blobs found in input binary image BW when the EquivalentDiameterSquaredOutputPort property is set to true.

[___,EXTENT] = step(H,BW) computes the EXTENT of the blobs found in input binary image BW when the ExtentOutputPort property is set to true.

[___,PERIMETER] = step(H,BW) computes the PERIMETER of the blobs found in input binary image BW when the PerimeterOutputPort property is set to true.

[___,LABEL] = step(H,BW) returns a label matrix LABEL of the blobs found in input binary image BW when the LabelMatrixOutputPort property is set to true.

Code Generation Support
Supports MATLAB® Function block: Yes
System Objects in MATLAB Code Generation.
Code Generation Support, Usage Notes, and Limitations.

Input/OutputFormatSupported Data Types
BW

Vector or matrix that represents a binary image

Boolean

AREA

Vector that represents the number of pixels in labeled regions

32-bit signed integer

CENTROID

M-by-2 matrix of centroid coordinates, where M represents the number of blobs

  • Double-precision floating point

  • Single-precision floating point

  • Fixed point

BBOX

M-by-4 matrix of [x y width height] bounding box coordinates, where M represents the number of blobs and [x y] represents the upper left corner of the bounding box.

32-bit signed integer

MAJORAXIS

Vector that represents the lengths of major axes of ellipses

  • Double-precision floating point

  • Single-precision floating point

MINORAXIS

Vector that represents the lengths of minor axes of ellipses

Same as MajorAxis port

ORIENTATION

Vector that represents the angles between the major axes of the ellipses and the x-axis.

Same as MajorAxis port

ECCENTRICITY

Vector that represents the eccentricities of the ellipses

Same as MajorAxis port

EQDIASQ

Vector that represents the equivalent diameters squared

Same as Centroid port

EXTENT

Vector that represents the results of dividing the areas of the blobs by the area of their bounding boxes

Same as Centroid port

PERIMETER

Vector containing an estimate of the perimeter length, in pixels, for each blob

Same as Centroid port

LABEL

Label matrix

8-, 16-, or 32-bit unsigned integer

Construction

H = vision.BlobAnalysis returns a blob analysis System object, H, used to compute statistics for connected regions in a binary image.

H = vision.BlobAnalysis(Name,Value) returns a blob analysis object, H, with each specified property set to the specified value. You can specify additional name-value pair arguments in any order as (Name1, Value1,...,NameN,ValueN).

Properties

AreaOutputPort

Return blob area

Setting this property to true outputs the area of the blobs. The default is true.

CentroidOutputPort

Return coordinates of blob centroids

Set this property to true to output the coordinates of the centroid of the blobs. The default is true.

BoundingBoxOutputPort

Return coordinates of bounding boxes

Set this property to true to output the coordinates of the bounding boxes. The default is true.

MajorAxisLengthOutputPort

Return vector whose values represent lengths of ellipses' major axes

Set this property to true to output a vector whose values represent the lengths of the major axes of the ellipses that have the same normalized second central moments as the labeled regions. This property applies when you set the OutputDataType property to double or single. The default is false.

MinorAxisLengthOutputPort

Return vector whose values represent lengths of ellipses' minor axes

Set this property to true to output a vector whose values represent the lengths of the minor axes of the ellipses that have the same normalized second central moments as the labeled regions. This property is available when the OutputDataType property is double or single. The default is false.

OrientationOutputPort

Return vector whose values represent angles between ellipses' major axes and x-axis

Set this property to true to output a vector whose values represent the angles between the major axes of the ellipses and the x-axis. This property applies when you set the OutputDataType property to double or single. The default is false.

EccentricityOutputPort

Return vector whose values represent ellipses' eccentricities

Set this property to true to output a vector whose values represent the eccentricities of the ellipses that have the same second moments as the region. This property applies when you set the OutputDataType property to double or single. The default is false.

EquivalentDiameterSquaredOutputPort

Return vector whose values represent equivalent diameters squared

Set this property to true to output a vector whose values represent the equivalent diameters squared. The default is false.

ExtentOutputPort

Return vector whose values represent results of dividing blob areas by bounding box areas

Set this property to true to output a vector whose values represent the results of dividing the areas of the blobs by the area of their bounding boxes. The default is false.

PerimeterOutputPort

Return vector whose values represent estimates of blob perimeter lengths

Set this property to true to output a vector whose values represent estimates of the perimeter lengths, in pixels, of each blob. The default is false.

OutputDataType

Output data type of statistics

Specify the data type of the output statistics as double, single, or Fixed point. Area and bounding box outputs are always an int32 data type. Major axis length, Minor axis length, Orientation and Eccentricity do not apply when you set this property to Fixed point. The default is double.

Connectivity

Which pixels are connected to each other

Specify connectivity of pixels as 4 or 8. The default is 8.

LabelMatrixOutputPort

Return label matrix

Set this property to true to output the label matrix. The default is false.

MaximumCount

Maximum number of labeled regions in each input image

Specify the maximum number of blobs in the input image as a positive scalar integer. The maximum number of blobs the object outputs depends on both the value of this property, and on the size of the input image. The number of blobs the object outputs may be limited by the input image size. The default is 50.

MinimumBlobArea

Minimum blob area in pixels

Specify the minimum blob area in pixels. The default is 0. This property is tunable.

MaximumBlobArea

Maximum blob area in pixels

Specify the maximum blob area in pixels. The default is intmax('uint32'). This property is tunable.

ExcludeBorderBlobs

Exclude blobs that contain at least one border pixel

Set this property to true if you do not want to label blobs that contain at least one border pixel. The default is false.

 Fixed-Point Properties

Methods

cloneCreate blob analysis object with same property values
getNumInputsNumber of expected inputs to step method
getNumOutputsNumber of outputs from step method
isLockedLocked status for input attributes and nontunable properties
release Allow property value and input characteristics changes
stepCompute and returns statistics of input binary image

Examples

Find the centroid of a blob.

 hblob = vision.BlobAnalysis;
 hblob.AreaOutputPort = false;
 hblob.BoundingBoxOutputPort = false;
 img = logical([0 0 0 0 0 0; ...
 								0 1 1 1 1 0; ...
 								0 1 1 1 1 0; ...
 								0 1 1 1 1 0; ...
 								0 0 0 0 0 0]);
 centroid = step(hblob, img); % [x y] coordinates of the centroid

Algorithms

This object implements the algorithm, inputs, and outputs described on the Blob Analysis block reference page. The object properties correspond to the block parameters, except:

  • The Warn if maximum number of blobs is exceeded block parameter does not have a corresponding object property. The object does not issue a warning.

  • The Output blob statistics as a variable-size signal block parameter does not have a corresponding object property.

Was this topic helpful?