LBitmap::GetMarksCenterMass

#include "ltwrappr.h"

virtual L_INT LBitmap::GetMarksCenterMass (pMarkPoints, pMarkCMPoints, uMarksCount, uFlags = 0)

POINT * pMarkPoints;

/* pointer to an array of registration mark locations */

POINT * pMarkCMPoints;

/* pointer to an array to be filled */

L_UINT uMarksCount;

/* number of marks, must be 3 */

L_UINT32 uFlags;

/* flags */

Finds the center of mass for each of the registration marks specified by pMarkPoints.

Parameter

Description

pMarkPoints

Pointer to an array of points containing mark locations.

pMarkCMPoints

Pointer to an array that will be filled with points which represent the center of mass for each of the supplied registration marks. The first center of mass point corresponds to the first registration mark in the pMarkPoints array and so on

uMarksCount

Number of marks, must be 3.

uFlags

Reserved for future use. Must be 0.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

This function is used to determine the center of mass for each supplied registration mark, to be used in detecting image rotation, scaling and translation.

The results (that is, the points representing each center of mass) returned by this function are multiplied by 100 in order to obtain more precision (00.00). To get the actual results, divide by 100.

This functions uses values that are divided internally by 100.

This function can be used in the following manner:

1.

Use LBitmap::SearchRegMarks to find the registration marks.

2.

Pass data from pMarkDetectedPoints to this function to determine the points representing the center of mass for each registration mark.

3.

Pass these points to LBitmap::GetTransformationParameters to detect the image rotation, scaling and translation.

This function does not use LBase::EnableStatusCallback.

If you simply want to automatically straighten a bitmap, use the LBitmap::Deskew function.

This function supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.

This function does not support signed data images. It returns the error code ERROR_SIGNED_DATA_NOT_SUPPORTED if a signed data image is passed to this function.

This function does not support 32-bit grayscale images. It returns the error code ERROR_GRAY32_UNSUPPORTED if a 32-bit grayscale image is passed to this function.

Required DLLs and Libraries

LTIMGCOR

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

See Also

Functions:

LBitmapBase::Combine, LBitmapBase::Rotate, LBitmapBase::Size, LBitmapBase::Resize, LBitmap::Deskew, LBitmap::IsRegMark, LBitmap::SearchRegMarks, LBitmap::GetTransformationParameters, LBitmapBase::SizeInterpolate, LBitmap::DeskewCheck

Topics:

Raster Image Functions: Document Imaging

 

Detecting Registration Marks

Example

For an example, refer to LBitmap::GetTransformationParameters.