Filters
Filter values by
Registration context type
  • Correlation stitching context
  • Depth from focus context
  • Extended depth of field context
  • High dynamic range context
  • Photometric stereo context
| Customize Help
| Save Settings

MregCalculate



Function Map
Synopsis
Perform the registration operation specified by the registration context on the input images.
Syntax
void MregCalculate(
MIL_ID ContextId, //in
const MIL_ID *ImageArrayPtr, //in
MIL_ID RegResultOrImageId, //in
MIL_INT NumImages, //in
MIL_INT64 ControlFlag //in
)
Description

This function performs the registration operation specified by the registration context on the input images. It can perform a correlation-stitching registration operation, an extended depth of field registration operation, a depth-from-focus registration operation, a high dynamic range registration operation, or a photometric stereo registration operation.

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
ContextId

Specifies the context to use for the registration; this establishes the operation to perform. The context must have been allocated using MregAlloc().

See the Parameter associations section for possible values that can be specified.

ImageArrayPtr
Accepts the address of one of the following (see the Parameter associations section for specifics on which is expected):
  • array of type MIL_ID [optionally, in C++: a reference to a constant std::vector<MIL_ID> ] (and a maximum array rank for C# of 1)
    Required array size:(NumImages)

Specifies the address of the array containing the buffer identifiers of the input images. If unused, set this parameter to M_NULL. When 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.

See the Parameter associations section for possible values that can be specified.

RegResultOrImageId

Specifies the identifier of the registration result buffer or image buffer in which to write the results of the registration operation.

If unused, set this parameter to M_NULL.

See the Parameter associations section for possible values that can be specified.

NumImages

Specifies the size of the specified image array.

If unused, set this parameter to M_NULL.

When using a standard vector (std::vector) overload function in C++, you can pass M_DEFAULT to this parameter and MIL will automatically determine the size based on the number of items in the vector passed to the ImageArrayPtr parameter.

See the Parameter associations section for possible values that can be specified.

ControlFlag

Specifies the operation mode.

See the Parameter associations section for possible values that can be specified.

The table below lists possible values for the ContextId, ImageArrayPtr, RegResultOrImageId, NumImages, and ControlFlag parameters.

Set unused parameters to M_NULL.

Note that except in the case of M_DEFAULT_EXTENDED_DEPTH_OF_FIELD_CONTEXT, if the ImageArrayPtr, RegResultOrImageId, and/or NumImages parameters are not listed, they are not used and should be set to M_NULL.

function map For specifying the operation mode
Click to summarize
ContextId
Description
ControlFlag
ImageArrayPtr
RegResultOrImageId
NumImages
Click to summarize M_DEFAULT_EXTENDED_DEPTH_OF_FIELD_CONTEXT

Same as MIL extended depth of field registration context identifier. Specifies the default M_EXTENDED_DEPTH_OF_FIELD registration context with all the control types (MregControl()) in the context set to M_DEFAULT.

(summarize)
Click to summarize MIL correlation-stitching registration
context identifier

Specifies a valid correlation-stitching registration context identifier, previously allocated using MregAlloc() with M_STITCHING.

When this context is passed, a correlation-stitching registration operation is performed. The function calculates the optimal match in the overlapping region between each image and its reference image and then calculates the transformation needed to achieve this match. Once the transformation that maps each image into its reference image's pixel coordinate system is calculated, it is converted so that it maps the image into the global pixel coordinate system.

Typically for a correlation-stitching registration context, every input image is associated with a registration element that provides the rough location of the image in another input image (reference image) or in the global pixel coordinate system.

(summarize)
Click to summarize M_DEFAULT

Specifies the default correlation-stitching registration operation mode.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation.

Every image in the specified image array is associated with the registration element and registration result element of the same index. For example, the first image is associated with the first registration element and the first registration result element. Therefore, it is important that the number of images supplied in the array be less than or equal to the number of registration elements.

You might not want to perform the optimization step of the correlation-stitching registration calculation when the precise location of one or more images is known. In this case, you have two options. You can replace the image for which you want to skip the optimization step with M_NULL in the image array or you can disable M_OPTIMIZE_LOCATION in the image's registration element using MregControl(). For more information, see the Skipping the optimization step subsection of the Customizing your registration settings section of Chapter 11: Correlation stitching registration and mosaicing.

(summarize)
Click to summarize RegResultOrImageId

Specifies a valid correlation-stitching result buffer identifier, previously allocated using MregAllocResult() with M_STITCHING_RESULT.

The results of the registration calculation can be retrieved using MregGetResult(). These results can be used to perform other operations supported by the registration module. For example, the results can be used to create a mosaic of the input images using MregTransformImage(); you can also use them with MregTransformCoordinate() or MregTransformCoordinateList() to transform positions between two of the following coordinate systems: the global pixel coordinate system, any registered image's pixel coordinate system, or the mosaic's coordinate system.

(summarize)
Click to summarize NumImages

Specifies the size of the image array. If the array contains fewer image buffer identifiers than the specified size, the outstanding elements of the array should be set to M_NULL.

(summarize)
Click to summarize MIL depth-from-focus registration context
identifier

Specifies a valid depth-from-focus registration context identifier, previously allocated using MregAlloc() with M_DEPTH_FROM_FOCUS. When this context is passed, a depth-from-focus registration operation is performed. This operation generates an image that conveys depth information, from a set of two-dimensional images of the same scene taken at different focus distances. The operation calculates, for each pixel, in which image that pixel is found most in focus. It replaces the corresponding pixel entry with the index of the image. This output image is referred to as the index map.

The depth-from-focus operation requires that every input image is of the same scene, at different focus levels.

(summarize)
Click to summarize M_DEFAULT

Same as M_COMPUTE.

(summarize)
Click to summarize M_ACCUMULATE_AND_COMPUTE

Specifies to process additional input images, and then calculate the index map using this new information and all of the information previously processed and stored in the result buffer. Each call to MregCalculate() with this constant will accumulate new results and a new index map in the depth-from-focus result buffer. This operation will not empty the result buffer of previous entries. If an index map is already in the result buffer prior to MregCalculate(), it will be discarded and replaced with the new index map.

Note that when using this value with a non-empty result buffer, the settings of the specified context must match the settings of the context used to add the previous image information to the result buffer, otherwise an error occurs.

You can retrieve preprocessing results from a depth-from-focus result buffer using MregGetResult(), and access the depth-from-focus index map by drawing it using MregDraw() with M_DRAW_DEPTH_INDEX_MAP.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation.

These images must not have a region of interest (ROI) associated with them. Using images with an ROI will cause an error.

The image buffers must be 1-band, and must all have the same size and type.

(summarize)
Click to summarize RegResultOrImageId

Specifies the identifier of the result buffer in which to save results; if the result buffer contains results from a previous depth-from-focus operation, they will be considered for the current operation.

(summarize)
Click to summarize NumImages

Specifies the size of the image array. If the array contains fewer image buffer identifiers than the specified size, the outstanding elements of the array should be set to M_NULL.

(summarize)
Click to summarize M_COMPUTE

Specifies to calculate the index map from the specified input images.

If passing a result buffer to RegResultOrImageId, MregCalculate() will clear the result buffer of previous results, and then fill the buffer with the index map and new results.

You can retrieve preprocessing results from a depth-from-focus result buffer using MregGetResult(), and access the depth-from-focus index map by drawing it using MregDraw() with M_DRAW_DEPTH_INDEX_MAP.

If passing an image buffer to RegResultOrImageId, the function clears the image buffer, and writes the resulting index map in the image buffer; no other results are accessible.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation.

These images must not have a region of interest (ROI) associated with them. Using images with an ROI will cause an error.

The image buffers must be 1-band, and must all have the same size and type.

(summarize)
Click to summarize RegResultOrImageId

Specifies the identifier of the result buffer or image buffer in which to save results.

(summarize)
Click to summarize MIL depth-from-focus registration result
buffer identifier

Specifies a valid depth-from-focus registration result buffer identifier, previously allocated using MregAllocResult() with M_DEPTH_FROM_FOCUS_RESULT.

Click to summarize MIL image buffer identifier

Specifies the identifier of a valid image buffer, previously allocated on the required system using MbufAlloc...(). The image buffer must have a type large enough to contain the maximum number of indices (NumImages).

(summarize)
Click to summarize NumImages

Specifies the size of the image array. If the array contains fewer image buffer identifiers than the specified size, the outstanding elements of the array should be set to M_NULL.

(summarize)
Click to summarize M_RESET

Specifies to clear the specified result buffer.

(summarize)
Click to summarize RegResultOrImageId

Specifies the identifier of the result buffer, previously allocated using MregAllocResult() with M_DEPTH_FROM_FOCUS_RESULT, to clear.

(summarize)
Click to summarize MIL extended depth of field registration
context identifier

Specifies a valid extended depth of field registration context identifier, previously allocated using MregAlloc() with M_EXTENDED_DEPTH_OF_FIELD.

When using an M_EXTENDED_DEPTH_OF_FIELD registration context, this function performs an extended depth of field registration operation. It will preprocess the specified input images and then fuse the images to create an extended depth of field (EDoF) image. The results can be stored in a previously allocated result buffer or an image buffer.

Each input image must be of the same scene, taken under different focus distances; the operation combines the focused objects in all of the images to create an image with all the objects of interest in focus.

In the M_ACCUMULATE and M_ACCUMULATE_AND_COMPUTE modes, images must be preprocessed using the same registration context and settings (for example, same maximum radius of the circle of confusion).

You can retrieve results from an extended depth of field result buffer using MregGetResult(), and access the EDoF image by drawing it using MregDraw().

(summarize)
Click to summarize M_DEFAULT

Same as M_COMPUTE.

(summarize)
Click to summarize M_ACCUMULATE

Specifies to preprocess the images and to add the information to the result buffer. This will not empty the result buffer prior to writing to it, nor calculate the extended depth of field (EDoF) image. To create the EDoF image after accumulating, you must call MregCalculate() with M_ACCUMULATE_AND_COMPUTE.

Note that when using this value with a non-empty result buffer, the settings of the specified context must match the settings of the context used to add the previous image information to the result buffer.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation.

The input images must have the same size, type, and number of bands.

You can replace images in the array that you do not want to use in the calculations with M_NULL. This allows you to establish the minimum number of focus distances at which to grab the input images and still obtain a good EDoF image. The fewer the number of input images, the faster the operation. For example, you can perform the operation with 10 different focus distances, and then try performing the same operation with every second image set to M_NULL to see if the EDoF image is still acceptable.

(summarize)
Click to summarize RegResultOrImageId

Specifies the extended depth of field result buffer to fill with the information extracted when preprocessing the input images.

(summarize)
Click to summarize NumImages

Specifies the size of the image array. If the array contains fewer image buffer identifiers than the specified size, the outstanding elements of the array should be set to M_NULL.

(summarize)
Click to summarize M_ACCUMULATE_AND_COMPUTE

Specifies to preprocess the additional input images, and then compute the EDoF image using this new information and all of the information previously processed and stored in the result buffer. The EDoF image will only be calculated after the last image has been processed. This will not empty the result buffer of previous entries. If an EDoF image is already in the result buffer prior to MregCalculate(), it will be discarded and replaced with the new EDoF image.

Note that you don't have to pass additional input images. If no input images are specified, the operation calculates the EDoF image using only the preprocessed information in the result buffer.

Note that when using this value with a non-empty result buffer, the settings of the specified context must match the settings of the context used to add the previous image information to the result buffer.

(summarize)
Click to summarize ImageArrayPtr

Specifies the input images to use when performing the registration operation.

(summarize)
Click to summarize M_NULL

Specifies to calculate the EDoF image using only the preprocessed information available in the result buffer.

Click to summarize Array of image buffer IDs

Specifies the address of an array of MIL image buffer identifiers to use, besides also using the preprocessed information available in the result buffer. The input images must have the same size, type, and number of bands.

You can replace images in the array that you do not want to use in the calculations with M_NULL. This allows you to establish the minimum number of focus distances at which to grab the input images and still obtain a good EDoF image. The fewer the number of input images, the faster the operation. For example, you can perform the operation with 10 different focus distances, and then try performing the same operation with every second image set to M_NULL to see if the EDoF image is still acceptable.

(summarize)
Click to summarize RegResultOrImageId

Specifies the result buffer to fill.

You can retrieve preprocessing results from an extended depth of field result buffer using MregGetResult(), and access the EDoF image by drawing it using MregDraw().

(summarize)
Click to summarize NumImages

Specifies the size of the image array. If the array contains fewer image buffer identifiers than the specified size, the outstanding elements of the array should be set to M_NULL.

If you passed M_NULL to ImageArrayPtr, set this parameter to 0.

(summarize)
Click to summarize M_COMPUTE

Specifies to calculate the EDoF image immediately.

If passing a result buffer to RegResultOrImageId, MregCalculate() will clear the result buffer of previous results, and then fill the result with the preprocessing information and the EDoF image.

If passing an image buffer to RegResultOrImageId, the function clears the image buffer of any previous image, and writes the resulting EDoF image in the image buffer; no other results are accessible.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation.

The input images must have the same size, type, and number of bands.

You can replace images in the array that you do not want to use in the calculations with M_NULL. This allows you to establish the minimum number of focus distances at which to grab the input images and still obtain a good EDoF image. The fewer the number of input images, the faster the operation. For example, you can perform the operation with 10 different focus distances, and then try performing the same operation with every second image set to M_NULL to see if the EDoF image is still acceptable.

(summarize)
Click to summarize RegResultOrImageId

Specifies the result buffer or image buffer to fill.

(summarize)
Click to summarize MIL extended depth of field registration
result buffer identifier

Specifies a valid extended depth of field registration result buffer identifier, previously allocated using MregAllocResult() with M_EXTENDED_DEPTH_OF_FIELD_RESULT.

You can retrieve preprocessing results from an extended depth of field result buffer using MregGetResult(), and access the EDoF image by drawing it using MregDraw().

(summarize)
Click to summarize MIL image buffer identifier

Specifies a valid image buffer, previously allocated on the required system using MbufAlloc...().

Click to summarize NumImages

Specifies the size of the image array. If the array contains fewer image buffer identifiers than the specified size, the outstanding elements of the array should be set to M_NULL.

(summarize)
Click to summarize M_RESET

Specifies to clear the result buffer of all preprocessing information and the EDoF image, if applicable.

(summarize)
Click to summarize RegResultOrImageId

Specifies the result buffer, previously allocated using MregAllocResult() with M_EXTENDED_DEPTH_OF_FIELD_RESULT, to clear.

(summarize)
Click to summarize MIL high dynamic range registration context
identifier

Specifies a valid high dynamic range registration context identifier, previously allocated using MregAlloc() with M_HIGH_DYNAMIC_RANGE.

When this context is passed, a high dynamic range registration operation is performed. This function merges two or more images of the same subject that were taken with different exposure times, and therefore have different levels of saturation. Shorter exposure times produce darker images in which details in dark areas might not appear, and that have no saturation in brighter areas. Similarly, longer exposure times produce brighter images in which details in dark areas will appear, but brighter areas might begin to saturate (going over the sensor's light accumulation capacity) and lose detail. When the images are fused together, the resulting HDR image will show details in both dark areas and bright areas.

When finished, the function applies tone mapping. The tone mapping is non-linear and can be tuned to better highlight a range of pixel intensities in the resulting images, without truncating other pixel intensities. You can control tone mapping settings using MregControl() with M_TONE_MAPPING_....

You can retrieve results from a high dynamic range result buffer using MregGetResult(), and access the HDR image by drawing it using MregDraw() with M_DRAW_HDR_IMAGE.

(summarize)
Click to summarize M_DEFAULT

Same as M_COMPUTE.

(summarize)
Click to summarize M_ACCUMULATE

Specifies to preprocess the images and to add the information to the result buffer. This will not empty the result buffer prior to writing to it, nor calculate the high dynamic range image. To create the HDR image after accumulating, you must call MregCalculate() with M_ACCUMULATE_AND_COMPUTE.

Note that when using this value with a non-empty result buffer, the settings of the specified context must match the settings of the context used to add the previous image information to the result buffer.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation.

Note that you must add images to the array in sequence, where the first index (index 0) holds the image providing the darkest details (longest exposure) and the largest index holds the image providing the brightest details (shortest exposure); calling MregCalculate() multiple times with M_ACCUMULATE does not change this requirement. Also note that each array index does not correspond to a specific exposure; only the order matters (from longest to shortest exposure), across all arrays passed until computation.

You can replace images in the array that you do not want to use in the calculations with M_NULL.

The input images must have the same size, and be 1-band 8- or 16-bit unsigned images.

(summarize)
Click to summarize RegResultOrImageId

Specifies the identifier of the high dynamic range result buffer to fill with the information extracted when preprocessing the input images. The result buffer must have been previously allocated using MregAllocResult() with M_HIGH_DYNAMIC_RANGE_RESULT.

(summarize)
Click to summarize NumImages

Specifies the size of the image array.

(summarize)
Click to summarize M_ACCUMULATE_AND_COMPUTE

Specifies to process additional input images, and then calculate the HDR image using this new information and all of the information previously processed and stored in the result buffer. The HDR image is calculated only after the last image has been processed. This will not empty the result buffer of previous entries. If an HDR image is already in the result buffer prior to calling MregCalculate(), it is discarded and replaced with the new HDR image.

Note that you don't have to pass additional input images. If no input images are specified, the operation calculates the HDR image using only the preprocessed information in the result buffer.

Note that when using this value with a non-empty result buffer, the settings of the specified context must match the settings of the context used to add the previous image information to the result buffer, otherwise an error occurs.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation.

Note that you must add images to the array in sequence, where the first index (index 0) holds the image providing the darkest details (longest exposure) and the largest index holds the image providing the brightest details (shortest exposure). If you have previously called MregCalculate() with M_ACCUMULATE, the current call to MregCalculate() with M_ACCUMULATE_AND_COMPUTE must continue the sequence. Also note that each array index does not correspond to a specific exposure; only the order matters (from longest to shortest exposure), across all arrays passed until computation.

The input images must have the same size, and be 1-band 8- or 16-bit unsigned images.

(summarize)
Click to summarize M_NULL

Specifies to calculate the HDR image using only the preprocessed information available in the result buffer.

Click to summarize Array of image buffer IDs

Specifies the address of an array of MIL image buffer identifiers to use, besides also using the preprocessed information available in the result buffer. The input images must have the same size, type, and number of bands.

You can replace images in the array that you do not want to use in the calculations with M_NULL. This allows you to establish the minimum number of exposures at which to grab the input images and still obtain a good HDR image. The fewer the number of input images, the faster the operation. For example, you can perform the operation with 10 different exposures, and then try performing the same operation with every second image set to M_NULL to see if the HDR image is still acceptable.

(summarize)
Click to summarize RegResultOrImageId

Specifies the identifier of the result buffer in which to save results; if the result buffer contains results from a previous high dynamic range operation, they will be considered for the current operation. The result buffer must have been previously allocated using MregAllocResult() with M_HIGH_DYNAMIC_RANGE_RESULT.

(summarize)
Click to summarize NumImages

Specifies the size of the image array.

If you passed M_NULL to ImageArrayPtr, set this parameter to 0.

(summarize)
Click to summarize 0

Specifies no input images.

Click to summarize Value >= 1

Specifies the array size.

Click to summarize M_COMPUTE

Specifies to complete the HDR processing with the input images provided in the call. No previously added images are used.

If passing a result buffer to RegResultOrImageId, MregCalculate() will clear the result buffer of previous results, and then fill the result with the preprocessing information and the HDR image. If passing an image buffer to RegResultOrImageId, the function clears the image buffer of any previous image, and writes the resulting HDR image in the image buffer; no other results are accessible.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation.

Note that you must add images to the array in sequence, where the first index (index 0) holds the image providing the darkest details (longest exposure) and the largest index holds the image providing the brightest details (shortest exposure). Also note that each array index does not correspond to a specific exposure; only the order matters (from longest to shortest exposure).

The input images must have the same size, and be 1-band 8- or 16-bit unsigned images.

(summarize)
Click to summarize RegResultOrImageId

Specifies the identifier of the result buffer or image buffer in which to store results.

(summarize)
Click to summarize MIL high dyamic range registration result
buffer identifier

Specifies a valid high dynamic range registration result buffer identifier, previously allocated using MregAllocResult() with M_HIGH_DYNAMIC_RANGE_RESULT.

Click to summarize MIL image buffer identifier

Specifies the identifier of a valid image buffer to hold the computed HDR image; the image buffer must have been previously allocated on the required system using MbufAlloc...().

Click to summarize NumImages

Specifies the size of the image array.

(summarize)
Click to summarize Value >= 2

Specifies the array size.

Click to summarize M_RESET

Specifies to clear the specified result buffer.

(summarize)
Click to summarize RegResultOrImageId

Specifies the identifier of the result buffer, previously allocated using MregAllocResult() with M_HIGH_DYNAMIC_RANGE_RESULT, to clear.

(summarize)
Click to summarize MIL photometric stereo registration context
identifier

Specifies a valid photometric stereo registration context identifier, previously allocated using MregAlloc() with M_PHOTOMETRIC_STEREO.

When this context is passed, a photometric stereo registration operation is performed. This operation generates an image that reveals raised and recessed features, surface reflectance changes, and/or surface defects. To highlight such features, the operation uses multiple images of the same scene taken under different directional lighting to produce a single enhanced image. The photometric stereo operation uses all of the source images jointly to compute the surface normal in each neighborhood of pixels, which is used to produce an albedo image, for example, and/or other photometric stereo images, depending on the operation specified with MregControl().

The photometric stereo operation requires that every input image is of the same scene, with different lighting source orientations. In addition, it assumes no camera settings are changed while grabbing the image. To perform this operation, the photometric stereo context must contain a registration element for each input image. Each registration element must specify the direction of the light used for its corresponding input image.

(summarize)
Click to summarize M_COMPUTE

Specifies to calculate the photometric stereo image(s), and store results in a result buffer or an image buffer.

Use MregControl() to specify the type of photometric stereo computation.

(summarize)
Click to summarize ImageArrayPtr

Specifies an array containing the buffer identifiers of the input images to use when performing the registration operation. Note that the order in which the input images are specified in the array must agree with the counter-clockwise order in which the lights are placed around the scene. To illustrate, if you have four lights spaced evenly around a scene, and your first light is placed in line with the positive X-axis (zero degrees), and lights 2, 3, and 4 are placed at 90, 180, and 270 degrees, respectively, you must specify their corresponding images in the same order.

The input images must have the same size and have one band only.

(summarize)
Click to summarize RegResultOrImageId

Specifies the result buffer or image buffer in which to store results.

(summarize)
Click to summarize MIL image buffer identifier

Specifies the identifier of the image buffer in which to store results.

Specify the type of image to output using MregControl() with M_DRAW_WITH_NO_RESULT.

(summarize)
Click to summarize MIL photometric stereo registration result
buffer identifier

Specifies the identifier of the result buffer in which to store results. The identifier must be a valid photometric stereo registration result buffer identifier, previously allocated using MregAllocResult() with M_PHOTOMETRIC_STEREO_RESULT.

If passing a result buffer to RegResultOrImageId, MregCalculate() will clear the result buffer of previous results, and then fill the result buffer with the photometric stereo image(s) and/or other new results.

You can access the calculated images by drawing them using MregDraw(), provided you have passed a registration result buffer using MregControl().

(summarize)
Click to summarize NumImages

Specifies the size of the image array. If the array contains fewer image buffer identifiers than the specified size, the outstanding elements of the array should be set to M_NULL.

(summarize)
Click to summarize Value > 3

Specifies the array size.

Compilation information
Header Include mil.h.
Library Use mil.lib; milreg.lib.
DLL Requires mil.dll; milreg.dll.
DEFAULT EXTENDED DEPTH OF FIELD CONTEXT DEFAULT DEFAULT ACCUMULATE AND COMPUTE COMPUTE RESET DEFAULT ACCUMULATE ACCUMULATE AND COMPUTE NULL COMPUTE RESET DEFAULT ACCUMULATE ACCUMULATE AND COMPUTE NULL COMPUTE RESET COMPUTE NULL