| Customize Help
| Save Settings

MblobDraw



Function Map
Synopsis
Draw specific blob features in the destination image buffer or 2D graphics list.
Syntax
void MblobDraw(
MIL_ID ContextGraId, //in
MIL_ID ResultBlobId, //in
MIL_ID DstImageBufOrListGraId, //in
MIL_INT64 Operation, //in
MIL_INT LabelOrIndex, //in
MIL_INT64 ControlFlag //in
)
Description

This function draws specific blob features, which were calculated using MblobCalculate(), in the destination image buffer or 2D graphics list. This function can draw multiple features at a time.

You can draw results obtained relative to an offset, at the top-left corner of the destination image, using MgraControl() with M_DRAW_OFFSET_X and M_DRAW_OFFSET_Y and zoom them using MgraControl() with M_DRAW_ZOOM_X and M_DRAW_ZOOM_Y. For example, you can draw a zoomed section of the blobs found in the target image at the top-left corner of the destination image. For more information, see the Drawing graphics with offset and zoom subsection of the Drawing graphics section of Chapter 24: Generating graphics.

Note that this function reference has not been updated for a MIL system added during a MIL update. Refer to the MIL system's release note to see which MIL system’s documentation you should use in its place and any possible differences.
Parameters
This function is not supported on the selected boards.
This function reference has not been updated for the selected MIL system. To show the content of this page, choose a second MIL system; refer to the MIL system's release note to see which MIL system’s documentation to choose and any possible differences.
Parameters
ContextGraId

Specifies the identifier of the 2D graphics context to use when drawing. This parameter must be set to one of the following values:

function map For specifying the 2D graphics context
Click to summarizeValue Description
Click to summarize M_DEFAULT

Specifies that the default 2D graphics context of the current MIL application is used.

Note that there is a different default 2D graphics context for each thread.

(summarize)
Click to summarize MIL 2D graphics context identifier

Specifies a valid 2D graphics context identifier, which you have allocated using MgraAlloc().

ResultBlobId

Specifies the identifier of the Blob Analysis result buffer from which to retrieve the features to draw.

DstImageBufOrListGraId

Specifies the identifier of the destination image buffer or 2D graphics list in which to draw. The buffer can be any valid MIL image buffer allocated using MbufAlloc...(). The 2D graphics list must be previously allocated using MgraAllocList(). By drawing into a display's overlay buffer or associating the 2D graphics list with the display, you can also annotate an image non-destructively.

If specifying an image buffer, it must not have a region of interest (ROI) associated with it. Using an image buffer with an ROI will cause an error.

Operation

Specifies the type of operation to perform.

The values in the tables below can be added together to draw multiple features at a time. For example, to draw the contour, holes, and position of the blobs, you would specify M_DRAW_BLOBS_CONTOUR + M_DRAW_HOLES + M_DRAW_POSITION.

The following operations can draw in a destination image buffer or 2D graphics list.

function map For specifying the type of operation
Click to summarizeValue Description
Click to summarize M_DRAW_AXIS

Draws a cross at the blobs' center of gravity, respecting the principal and secondary axes. Note that to perform this operation, one feature among M_AXIS_PRINCIPAL_ANGLE or M_AXIS_SECONDARY_ANGLE must have been calculated using the binary definition.

(summarize)
Click to summarize M_DRAW_BLOBS

Draws the blobs. Note that to perform this operation, runs must have been previously saved using MblobControl() with M_SAVE_RUNS set to M_ENABLE.

When drawing in either an image buffer or a 2D graphics list, MgraControl() with M_INPUT_UNITS cannot be set to M_WORLD for this operation.

(summarize)
Click to summarize M_DRAW_BLOBS_CONTOUR

Draws the external outline of the blobs.

Note that to perform this operation, runs must have been previously saved using MblobControl() with M_SAVE_RUNS set to M_ENABLE.

Also note that when using MblobControl() with M_BLOB_IDENTIFICATION_MODE set to either M_WHOLE_IMAGE or M_LABELED, both the blob and hole contours will be drawn when performing this operation. If M_BLOB_IDENTIFICATION_MODE is set to M_LABELED_TOUCHING, you cannot specify M_DRAW_BLOBS_CONTOUR.

When drawing in either an image buffer or a 2D graphics list, MgraControl() with M_INPUT_UNITS cannot be set to M_WORLD for this operation.

(summarize)
Click to summarize M_DRAW_BOX

Draws the image-axis aligned bounding box of each blob. The image-axis-aligned bounding box is the bounding box that is aligned with the pixel coordinate system's axes.

Note that to perform this operation, the M_BOX feature must have been calculated.

(summarize)
Click to summarize M_DRAW_BOX_CENTER

Draws a cross at the center of the blobs' bounding box.

Note that to perform this operation, the M_BOX feature must have been calculated.

(summarize)
Click to summarize M_DRAW_CENTER_OF_GRAVITY

Same as M_DRAW_POSITION.

Click to summarize M_DRAW_CONVEX_HULL

Draws the convex hull of the blobs.

Note that to perform this operation, the M_CONVEX_HULL feature must have been calculated, and runs must have been previously saved using MblobControl() with M_SAVE_RUNS set to M_ENABLE.

(summarize)
Click to summarize M_DRAW_CONVEX_HULL_CONTOUR

Draws the convex perimeter of the blobs.

Note that to perform this operation, the M_CONVEX_HULL feature must have been calculated, and runs must have been previously saved using MblobControl() with M_SAVE_RUNS set to M_ENABLE.

(summarize)
Click to summarize M_DRAW_FERET_MAX

Draws the blobs' maximum Feret diameter, using an H-type line (|-|), centered at the blobs' position, at the maximum Feret diameter's angle.

Note that to perform this operation, the following features must have been calculated: M_BOX, M_FERET_MAX_DIAMETER, and M_FERET_MAX_ANGLE.

(summarize)
Click to summarize M_DRAW_FERET_MIN

Draws the blobs' minimum Feret diameter, using an H-type line (|-|), centered at the blobs' position, at the minimum Feret diameter's angle.

Note that to perform this operation, the following features must have been calculated: M_BOX, M_FERET_MIN_DIAMETER, and M_FERET_MIN_ANGLE.

(summarize)
Click to summarize M_DRAW_HOLES

Draws the holes of the blobs.

Note that to perform this operation, runs must have been previously saved using MblobControl() with M_SAVE_RUNS set to M_ENABLE and one feature among M_BOX_X_MIN, M_BOX_X_MAX, M_BOX_Y_MIN, or M_BOX_Y_MAX must have been calculated.

When drawing in either an image buffer or a 2D graphics list, MgraControl() with M_INPUT_UNITS cannot be set to M_WORLD for this operation.

(summarize)
Click to summarize M_DRAW_HOLES_CONTOUR

Draws the outline of the blobs' holes.

Note that to perform this operation, runs must have been previously saved using MblobControl() with M_SAVE_RUNS set to M_ENABLE.

Also note that when using MblobControl() with M_BLOB_IDENTIFICATION_MODE set to either M_WHOLE_IMAGE or M_LABELED, both the blob and hole contours will be drawn when performing this operation. If M_BLOB_IDENTIFICATION_MODE is set to M_LABELED_TOUCHING, you cannot draw the blobs' holes with M_DRAW_HOLES_CONTOUR.

When drawing in either an image buffer or a 2D graphics list, MgraControl() with M_INPUT_UNITS cannot be set to M_WORLD for this operation.

(summarize)
Click to summarize M_DRAW_MIN_AREA_BOX

Draws the blobs' minimum-area bounding box.

Note that to perform this operation, at least one of the M_MIN_AREA_BOX features must have been calculated.

(summarize)
Click to summarize M_DRAW_MIN_PERIMETER_BOX

Draws the blobs' minimum-perimeter bounding box.

Note that to perform this operation, at least one of the M_MIN_PERIMETER_BOX features must have been calculated.

(summarize)
Click to summarize M_DRAW_POSITION

Draws a cross at the center of gravity of the blobs. Note that to perform this operation, M_CENTER_OF_GRAVITY must have been calculated using the binary definition.

(summarize)
Click to summarize M_DRAW_WORLD_BOX

Draws the world-axis aligned bounding box of each blob. The world-axis-aligned bounding box is the bounding box that is aligned with the relative coordinate system's axes.

Note that to perform this operation, the M_WORLD_BOX features must have been calculated.

(summarize)
Click to summarize M_DRAW_WORLD_BOX_CENTER

Draws a cross at the center of the blobs' bounding box, calculated in the relative coordinate system.

Note that to perform this operation, the M_WORLD_BOX features must have been calculated.

(summarize)
Click to summarize M_DRAW_WORLD_FERET_X

Draws the blobs' Feret diameter, using an H-type line (|-|), centered at the blobs' position, parallel to the X-axis of the relative coordinate system.

Note that to perform this operation, the M_WORLD_FERET_X feature must have been calculated.

(summarize)
Click to summarize M_DRAW_WORLD_FERET_Y

Draws the blobs' Feret diameter, using an H-type line (|-|), centered at the blobs' position, parallel to the Y-axis of the relative coordinate system.

Note that to perform this operation, the M_WORLD_FERET_Y feature must have been calculated.

(summarize)
LabelOrIndex

Specifies the label or index of the blob or blobs whose information to draw.

This parameter should be set to one of the following:

function map For specifying the label of the blob or blobs to draw
Click to summarizeValue Description
Click to summarize M_DEFAULT

Same as M_ALL_BLOBS.

Click to summarize
M_BLOB_INDEX(
MIL_INT Index
)

Specifies the index of the blob.

(summarize)
Parameters

Specifies the index. Valid indices range from 0 (the first blob) to the number of blobs (M_NUMBER) minus 1.

Click to summarize
M_BLOB_LABEL(
MIL_INT Label
)

Specifies the label of the blob for which to get results. You can get a list of valid blob label values with M_LABEL_VALUE.

(summarize)
Parameters

Specifies the label.

Click to summarize M_ALL_BLOBS

Specifies all blobs.

Click to summarize M_EXCLUDED_BLOBS

Specifies all currently excluded blobs.

Click to summarize M_INCLUDED_BLOBS

Specifies all currently included blobs.

ControlFlag

Reserved for future expansion and must be set to M_DEFAULT.

Compilation information
Header Include mil.h.
Library Use mil.lib; milblob.lib.
DLL Requires mil.dll; milblob.dll.
DEFAULT PROC NONE DRAW AXIS DRAW BLOBS DRAW BLOBS CONTOUR DRAW BOX DRAW BOX CENTER DRAW CENTER OF GRAVITY DRAW CONVEX HULL DRAW CONVEX HULL CONTOUR DRAW FERET MAX DRAW FERET MIN DRAW HOLES DRAW HOLES CONTOUR DRAW MIN AREA BOX DRAW MIN PERIMETER BOX DRAW POSITION DRAW WORLD BOX DRAW WORLD BOX CENTER DRAW WORLD FERET X DRAW WORLD FERET Y DEFAULT NUMBER MAX LABEL VALUE ALL BLOBS EXCLUDED BLOBS INCLUDED BLOBS WORLD ENABLE