37
Documentation Update for eVision 6.7.1 Copyright © EURESYS s.a. 1989-2008 Page 1/37 Documentation Update for eVision 6.7.1 March 14, 2011 DISCLAIMER EURESYS s.a. shall retain all property rights, title and interest of the documentation of the hardware and the software, and of the trademarks of EURESYS s.a. All the names of companies and products mentioned in the documentation may be the trademarks of their respective owners. The licensing, use, leasing, loaning, translation, reproduction, copying or modification of the hardware or the software, brands or documentation of EURESYS s.a. contained in this document, is not allowed without prior notice. EURESYS s.a. may modify the product specification or change the information given in this documentation at any time, at its discretion, and without prior notice. EURESYS s.a. shall not be liable for any loss of or damage to revenues, profits, goodwill, data, information systems or other special, incidental, indirect, consequential or punitive damages of any kind arising in connection with the use of the hardware or the software of EURESYS s.a. or resulting of omissions or errors in this document.

Documentation Update - Euresysdownloads.euresys.com/.../Documentation_Update_for_CD2006-1.pdf · EISH/Ish, ELAB/Lab, ELCH/Lch, ELSH/Lsh, ELUV/Luv EBW1/BW1, EBW8/BW8, EBW8Path/BW8Path,

  • Upload
    donhan

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 1/37

Documentation Update for eVision 6.7.1

March 14, 2011

DISCLAIMER

EURESYS s.a. shall retain all property rights, title and interest of the documentation of the hardware and the software, and of the trademarks of EURESYS s.a.

All the names of companies and products mentioned in the documentation may be the trademarks of their respective owners.

The licensing, use, leasing, loaning, translation, reproduction, copying or modification of the hardware or the software, brands or documentation of EURESYS s.a. contained in this document, is not allowed without prior notice.

EURESYS s.a. may modify the product specification or change the information given in this documentation at any time, at its discretion, and without prior notice.

EURESYS s.a. shall not be liable for any loss of or damage to revenues, profits, goodwill, data, information systems or other special, incidental, indirect, consequential or punitive damages of any kind arising in connection with the use of the hardware or the software of EURESYS s.a. or resulting of omissions or errors in this document.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 2/37

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 3/37

Introduction

This document describes the changes made to the eVision 6.7.1 released documentation, available on CD 2006/1.

This document cancels and replaces any previous one.

Contents

Introduction ....................................................................................................................................................... 3

Contents ............................................................................................................................................................ 3

Supported IDE ................................................................................................................................................... 5

Multithreading in eVision ................................................................................................................................. 5

Configuration functions ................................................................................................................................... 5 Basic pixel structures ...................................................................................................................................... 6 Pixel collection classes ................................................................................................................................... 6 Images and ROI classes................................................................................................................................. 6 EasyImage and EasyColor ............................................................................................................................. 7 EasyAVI library ................................................................................................................................................ 7 EasyOCR, EasyOCV and EasyBarCode libraries........................................................................................... 7 EasyMatch and EasyFind libraries .................................................................................................................. 7 EasyGauge ..................................................................................................................................................... 7 EasyMatrixCode library ................................................................................................................................... 8 EasyObject ...................................................................................................................................................... 9 EChecker library ............................................................................................................................................. 9 EasyBGA ........................................................................................................................................................ 9

EasyObject Library ......................................................................................................................................... 10

eVision User Guide ....................................................................................................................................... 10 Added Topic: Continuous vs. Normal Mode ............................................................................................. 10

eVision C++ Reference Manual .................................................................................................................... 12 Added Topic: Get/Set Continuous ............................................................................................................ 12 Added Topic: ResetContinuousMode ....................................................................................................... 13

eVision ActiveX Reference Manual .............................................................................................................. 13 Added Topic: Get Continuous Method ...................................................................................................... 13 Added Topic: Set Continuous Method ...................................................................................................... 14 Added Topic: ResetContinuousMode Method .......................................................................................... 14

EasyGauge Library ......................................................................................................................................... 15

eVision C++ Reference Manual .................................................................................................................... 15 Updated Topic: ECircleGauge:: Get/Set Amplitude .................................................................................. 15

EasyOCR Library ............................................................................................................................................ 16

eVision C++ Reference Manual .................................................................................................................... 16 Updated Topic: EOCR Construction ......................................................................................................... 16 Updated Topic: Save ................................................................................................................................ 16 Updated Topic: Load................................................................................................................................. 17

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 4/37

EasyFind Library ............................................................................................................................................. 18

eVision C++ Reference Manual .................................................................................................................... 18 Updated Topic: PatternFinder::Save ........................................................................................................ 18 Added Topic: FoundPattern::DrawCenter ................................................................................................. 19 Added Topic: FoundPattern::DrawBoundingBox ...................................................................................... 19 Added Topic: FoundPattern::DrawFeaturePoints ..................................................................................... 19 Updated Topic: FoundPattern::Draw ........................................................................................................ 20 Updated Topic: FoundPattern::Angle........................................................................................................ 20

eVision ActiveX Reference Manual .............................................................................................................. 21 Updated Topic: Save Method (PatternFinder control) .............................................................................. 21 Added Topic: DrawCenter Property (FoundPatternArray control) ............................................................ 21 Added Topic: DrawBoundingBox Property (FoundPatternArray control).................................................. 22 Added Topic: DrawFeaturePoints Property (FoundPatternArray control) ................................................ 22 Updated Topic: Angle Property (FoundPatternArray control) ................................................................... 23

EasyOCV Library ............................................................................................................................................. 24

eVision C++ Reference Manual .................................................................................................................... 24 Added Topic: EOCVChar Construction .................................................................................................... 24 Added Topic: EOCVText Construction ..................................................................................................... 24 Updated Topic: Error Codes By Values .................................................................................................... 25

EasyBarCode Library ..................................................................................................................................... 26

eVision User Guide ....................................................................................................................................... 26 Added Topic: Dealing with strings that contain NULL characters ............................................................. 26

eVision C++ Reference Manual .................................................................................................................... 28 Added Topic: SetCursor ........................................................................................................................... 28

eVision ActiveX Reference Manual .............................................................................................................. 29 Added Topic: SetDragable Method ........................................................................................................... 29 Added Topic: SetResizable Method .......................................................................................................... 29 Added Topic: SetRotatable Method .......................................................................................................... 30 Added Topic: SetCursor Method............................................................................................................... 30

EasyMatrixCode Library ................................................................................................................................. 31

eVision C++ Reference Manual .................................................................................................................... 31 Added Topic: DecodedData Property ....................................................................................................... 31 Added Topic: MaxHeightWidthRatio Property .......................................................................................... 31

eVision ActiveX Reference Manual .............................................................................................................. 32 Added Topic: GetDecodedData Method ................................................................................................... 32 Added Topic: MaxHeightWidthRatio Property .......................................................................................... 32 Added Topic: DecodedDataLength Property ............................................................................................ 33

EasyBGA Library............................................................................................................................................. 34

eVision C++ Reference Manual .................................................................................................................... 34 Added Topic: SetCursor ........................................................................................................................... 34 Added Topic: Closest ................................................................................................................................ 34 Added Topic: GetClosestShape ............................................................................................................... 34

JpegHandler interface .................................................................................................................................... 35

eVision C++ Reference Manual .................................................................................................................... 35 Added Topic: GetUpFieldBufferAddr ........................................................................................................ 35 Added Topic: GetUpFieldBufferSize ......................................................................................................... 35 Added Topic: GetDownFieldBufferAddr .................................................................................................... 35 Added Topic: GetDownFieldBufferSize .................................................................................................... 36 Added Topic: GetTimeStampLowDWord .................................................................................................. 36 Added Topic: GetTimeStampHighDWord ................................................................................................. 36

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 5/37

Supported IDE

WARNING:

An error occurred in the documentation delivered with eVision 6.7.1.0 (eVision User Guide -> Introduction -> Supported IDE topic): Borland C++ Builder 5.0 is no longer supported since eVision 6.6.

The correct table is presented below.

Multithreading in eVision

WARNING:

The following information applies to eVision starting at version 6.7.1.119.

Configuration functions

The following functions (or properties for .NET) allow setting eVision parameters in the current thread. They do not have any effect on the corresponding setting in other threads.

ESetTraceMode/Easy.TraceMode ESetAngleUnit/Easy.AngleUnit SetRecursiveCopyBehavior/Easy.RecursiveCopyBehavior ESetJpegQuality/Easy.JpegQuality ESetTiffThreshold/Easy.SetTiffThreshold ImgSetOverlayColor/EasyImage.SetOverlayColor ClrSetRGBStandard/EasyColor.RgbStandard ClrSetSrcQuantization/EasyColor.SrcQuantization ClrSetDstQuantization/EasyColor.DstQuantization

In addition, the current eVision error code (as retrieved by EGetError) is also thread-specific.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 6/37

On the other hand, the ESetMMX/Easy.MMX setting is global and must be set while no other eVision function

is executing.

Basic pixel structures

The basic pixel structures are:

EGenericColor/GenericColor EPeak/Peak EISH/Ish, ELAB/Lab, ELCH/Lch, ELSH/Lsh, ELUV/Luv EBW1/BW1, EBW8/BW8, EBW8Path/BW8Path, EBW16/BW16, EBW16Path/BW16Path, EBW32/BW32 EC15/C15, EC16/C16, EC24/C24, EC24A/C24A, EC24Path/C24Path EPath/Path

ERGB/Rgb, ERGBColor/RgbColor, EVSH/Vsh, EXYZ/Xyz, EYIQ/Yiq, EYSH/Ysh and EYUV/Yuv

These basic pixel structures are thread-safe: they may be read and/or modified from several threads.

Pixel collection classes

The pixel collection and table classes are:

EColorLookup/ColorLookup, EPseudoColorLookup/PseudoColorLookup EPeaksVector/PeaksVector EBW8Vector/BW8Vector, EBW16Vector/BW16Vector, EBW32Vector/BW32Vector, EC24Vector/C24Vector

EBWHistogramVector/BWHistogramVector EBW8PathVector/BW8PathVector, EBW16PathVector/BW16PathVector EPathVector/PathVector EColorVector/ColorVector, EColorLookup/ColorLookup and EC24PathVector/C24PathVector

These classes require some rules: a single instance of such as class may not be modified from several threads. On the other hand, different instances of these containers may be modified from different threads. Read-only access is not restricted. If a thread is modifying a pixel collection or table class instance, then no other thread can access this instance; this means they should neither read it nor modify it.

Images and ROI classes

The image and ROI (region of interest) classes are:

EImageBW1/ImageBW1, EROIBW1/ROIBW1 EImageBW8/ImageBW8, EROIBW8/ROIBW8 EImageBW16/ImageBW16, EROIBW16/ROIBW16 EImageBW32/ImageBW32, EROIBW32/ROIBW32 EImageC15/ImageC15, EROIC15/ROIC15 EImageC16/ImageC16, EROIC16/ROIC16 EImageC24/ImageC24, EROIC24/ROIC24 EImageC24A/ImageC24A, EROIC24A/ROIC24A and ImageSubPixel64/ImageSubPixel64

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 7/37

These classes enforce the same rules as the pixel collection classes: as long as they are accessed with reading operations only, they can be accessed from any number of threads. On the other hand, only one thread can modify such an instance and, when doing so, no other thread can access this instance, neither for modifying it, nor for reading it.

In addition to these general rules, the ROI classes (whose name contains "ROI") have a rule worth of note: different ROIs can be added to an image, removed from it and moved even if the parent image is the same for these different ROIs. This allows different threads to work on different areas in an image, possibly changing in position and size during the process.

EasyImage and EasyColor

All EasyImage and EasyColor functions are thread-safe: they can be called from different threads simultaneously, provided an image that will be modified as a result of the function call is not shared between threads.

EasyAVI library

The EasyAVI objects and methods are not thread-safe. They cannot be read or modified from several threads, regardless, for objects, whether these belong to a single instance or to several instances.

EasyOCR, EasyOCV and EasyBarCode libraries

The current version of the:

EOCR/Ocr, EOCRChar/OcrChar, EOCRText/OcrText EOCV/Ocv and EBarCode/BarCode

objects are not thread-safe. Their methods and variables cannot be read or modified from several threads, regardless of whether these belong to a single instance or to several instances.

EasyMatch and EasyFind libraries

EasyMatch and EasyFind are not thread-safe. Instances of the:

EMatch/Matcher and

PatternFinder

classes can never be read or modified from different threads, regardless of how many instances are concerned.

EasyGauge

The gauging classes:

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 8/37

EPointGauge/PointGauge, ELineGauge/LineGauge, ERectangleGauge/RectangleGauge, ECircleGauge/CircleGauge, EWedgeGauge/WedgeGauge

as well as the

EWorldShape/WorldShape and EFrameShape/FrameShape

classes can be attached, moved or removed from different threads, even in the same hierarchy.

Some of these operations will be blocking, in order to avoid data corruption. However, a single instance must not be used from different threads. This means, for instance, that it is OK to create two gauges and attach them to the same mother gauge from different threads.

The basic geometric classes:

EFrame/Frame EPoint/Point ECircle/Circle ELine/Line ERectangle/Rectangle and EWedge/Wedge

may also be accessed from different threads, provided that an instance is not used by two threads simultaneously.

A single gauging class instance may not be directly read or modified from different threads.

The gauging classes measuring and processing operations may be executed in different threads with

no blocking, even if these gauges perform their measuring operations in the same image.

A single

EWorldShape/WorldShape

instance cannot be directly read or modified from different threads (although a single instance can be attached to two daughters at the same time in different threads, but this is considered an operation on the daughters, not on the mother).

Note: the critical measuring processes are non-blocking, which means that multiple CPU usage will be optimal.

On the other hand, all the graphical interaction methods:

Closest(), SetCursor(), HitLandmark(), HitTest() and Drag()

can only be called from a single thread (usually the main event loop).

EasyMatrixCode library

Instances of MatrixCodeReader can be built and used in different threads but a single MatrixCodeReader object can only be used in a single thread.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 9/37

Note: most of the critical processing is non-blocking, which means that multiple CPU usage will be nearly optimal.

EasyObject

Using several

ECodedImage/CodedImage

objects in different threads is allowed, as long as the ROIs or images supplied to these objects are different. However, using two ROIs from the same image is allowed.

EChecker library

The current version of the

EChecker/Checker

object is not thread-safe. Its methods and variables cannot be read or modified from several threads, regardless of whether these belong to a single instance or to several instances.

EasyBGA

EasyBGA is not thread-safe. Calling this library from more than one thread is not supported.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 10/37

EasyObject Library

eVision User Guide

Added Topic: Continuous vs. Normal Mode

EasyObject: Blob Analysis Programming with EasyObject Continuous vs. Normal Mode

Continuous Mode

The continuous mode allows an image whose height is unknown or infinite (coming from a linear camera for

instance) to be processed by EasyObject, when being split into a sequence of images with a finite height. It allows detecting objects that straddle several successive images.

In the continuous mode, the BuildObjects method returns as objects the blobs whose last run belongs to the current image. It does not return the blobs that are expected to continue in the next image(s). But it keeps them in memory, to use them when analyzing the subsequent images.

Image 1: 5 objects detected

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 11/37

Image 2: 1 object detected

Image 3: 6 objects detected

To set the mode to continuous, use the SetContinuous method before executing BuildObjects.

Note. The continuous mode only works with a fixed threshold.

Normal Mode

The normal mode (default) does not allow working with several successive related images.

In the normal mode, EasyObject works with one image, without keeping blobs in memory. All blobs are returned as objects.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 12/37

7 objects detected

eVision C++ Reference Manual

Added Topic: Get/Set Continuous

EasyObject: Blob Analysis Classes and Class Members ECodedImage ECodedImage Class Members Object Construction Get/Set continuous

ECodedImage::Get/Set Continuous

BOOL GetContinuous();

Returns TRUE if objects are built in the continuous mode, FALSE if objects are built in the normal mode.

void SetContinuous(BOOL bContinuous);

If bContinuous is TRUE, objects are built in the continuous mode; otherwise objects are built in the normal mode. Default is bContinuous = FALSE.

Parameters

bContinuous TRUE if continuous mode; FALSE if normal mode (default).

Remarks

The continuous mode allows an image whose height is unknown or infinite (coming from a linear camera for instance) to be split into a sequence of images with a finite height. An object astride two successive images

is then returned by EasyObject only when the current image holds the end of this object.

Note that the continuous mode only works with a fixed threshold.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 13/37

Added Topic: ResetContinuousMode

EasyObject: Blob Analysis Classes and Class Members ECodedImage ECodedImage Class Members Object construction ResetContinuousMode

ECodedImage::ResetContinuousMode

void ResetContinuousMode();

When the continuous mode is activated, this method resets the sequence of images.

Remarks

Thus, the next call for an object building will not take into account any previous image.

If the continous mode is disabled, this method does nothing.

eVision ActiveX Reference Manual

Added Topic: Get Continuous Method

EasyObject: Blob Analysis Controls ECodedImage Methods Object construction GetContinuous method

GetContinuous method

Returns True if objects are built in the continuous mode, False if objects are built in the normal mode.

Syntax

object.GetContinuous()

The GetContinuous method syntax has these parts:

Part Description

Object An ECodedImage object.

Remarks

The continuous mode allows an image whose height is unknown or infinite (coming from a linear camera for instance) to be split into a sequence of images with a finite height. An object astride two successive images

is then returned by EasyObject only when the current image holds the end of this object.

Note that the continuous mode only works with a fixed threshold.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 14/37

Added Topic: Set Continuous Method

EasyObject: Blob Analysis Controls ECodedImage Methods Object construction SetContinuous method

SetContinuous method

If bContinuous is True, objects are built in the continuous mode; otherwise objects are built in the normal mode. Default is bContinuous = False.

Syntax

object.SetContinuous(bContinuous As Boolean)

The SetContinuous method syntax has these parts:

Part Description

Object

bContinuous

An ECodedImage object.

True if continuous mode; False if normal mode (default)

Remarks

The continuous mode allows an image whose height is unknown or infinite (coming from a linear camera for instance) to be split into a sequence of images with a finite height. An object astride two successive images

is then returned by EasyObject only when the current image holds the end of this object.

Note that the continuous mode only works with a fixed threshold.

Added Topic: ResetContinuousMode Method

EasyObject: Blob Analysis Controls ECodedImage Methods Object construction ResetContinuousMode

ResetContinuousMode method

When the continuous mode is activated, this method resets the sequence of images.

Syntax

object.ResetContinuousMode()

The ResetContinuousMode method syntax has these parts:

Part Description

object An ECodedImage object.

Remarks

Thus, the next call for an object building will not take into account any previous image.

If the continous mode is disabled, this method does nothing.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 15/37

EasyGauge Library

eVision C++ Reference Manual

Updated Topic: ECircleGauge:: Get/Set Amplitude

EasyGauge: Subpixel Measurement Classes and Class members ECircleGauge ECircleGauge Class Members Gauge Position Get/Set Amplitude

ECircleGauge::Get/Set Amplitude

FLOAT32 GetAmplitude();

Returns the angular amplitude of the circle fitting gauge. The default value is 360.

Void SetAmplitude( FLOAT32 f32Amplitude);

Sets the angular amplitude of the circle fitting gauge.

Parameters

f32Amplitude angular amplitude of the circle fitting gauge. The default value is 360.

Remarks

A circle fitting gauge is fully defined knowing its nominal position (given by the coordinates of its center), its nominal radius (diameter), the angular position from where it extents, its angular amplitude and its outline tolerance.

The sign of the rotation angle depends whether the field of view is calibrated or not.

When the field of view is calibrated, the coordinate system is said to be direct, the abscissa extends rightwards and the ordinate extends upwards. In this case, an anticlockwise rotation leads to a positive angle value.

When the field of view is not calibrated, the coordinate system is said to be inverse, the abscissa extends rightwards and the ordinate extends downwards. In this case, a clockwise rotation leads to a positive angle value.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 16/37

EasyOCR Library

eVision C++ Reference Manual

Updated Topic: EOCR Construction

EasyOCR: Printed Character Recognition Classes and Class members EOCR EOCR Class Members Construction EOCR Construction

EOCR Construction

Default constructor

EOCR::EOCR();

Constructs an OCR context.

Copy constructor

EOCR::EOCR(const EOCR& Ocr);

Constructs an OCR context based on a pre-existing EOCR object.

Parameters

Ocr Another EOCR object to be copied in the new EOCR object.

Remarks

By default, the Threshold property is set to 128.

Updated Topic: Save

EasyOCR: Printed Character Recognition Classes and Class members EOCR EOCR Class Members Learning Save

EOCR::Save

INT16 Save(const CHAR* pszPathName);

Writes the contents of the current font to a file.

Parameters

pszPathName full specification of the font file path and name.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 17/37

void Save( FILE* file);

Writes the contents of the current font to the given file, at the current file pointer position.

Parameters

file full specification of the font file path and name.

Remarks

This method allows to store several eVision objects in the same file by passing the same FILE pointer to

several Save(FILE* file) calls. Moreover, this file can also contain any kind of information saved with

fwrite (and thus retrieved by a fread call) between the eVision objects.

The FILE pointer given as argument must have been previously initialized with a proper call to fopen. Data

are saved at the current file pointer position. At the end of the writing, the file pointer is moved by the EOCR object size.

It is the user responsibility to know the exact structure of the used files.

Updated Topic: Load

EasyOCR: Printed Character Recognition Classes and Class members EOCR EOCR Class Members Learning Load

EOCR::Load

INT16 Load(const CHAR* pszPathName);

Loads a new font from a file. This overwrites the previous contents of the font

Parameters

pszPathName full specification of the font file path and name.

void Load( FILE* file);

Loads a new font from the given file.

Parameters

file full specification of the font file path and name.

Remarks Please note that the data are read at the current file pointer position. This method allows to read several eVision objects from the same file by passing the same FILE pointer to

several Load(FILE* file) calls. Moreover, this file can also contain any kind of information saved with

fwrite (and thus retrieved by a fread call) between the eVision objects. The FILE pointer given as

argument must have been previously initialized with a proper call to fopen.

It is up to users to correctly manage their files to be able to retrieve their eVision objects. Results obtained by trying to restore an object of the wrong type are undefined.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 18/37

EasyFind Library

eVision C++ Reference Manual

Updated Topic: PatternFinder::Save

EasyFind Classes PatternFinder PatternFinder Methods Persistent Storage PatternFinder::Save

PatternFinder::Save

void Patternfinder::Save(const std::string& path);

void Patternfinder::Save(const std::wstring& path);

Saves the learnt pattern and all the associated parameters to the given file. If no pattern is learnt, an exception is thrown.

Parameters

path full path and name specification of the storage file.

void Patternfinder::Save(ESerializer* serializer);

Appends the PatternFinder model data to the supplied serializer.

Parameters

serializer ESerializer object.

Exemple

// Create an ESerializer object for writing (with the default mode)

ESerializer *pSerializer = ESerializer::CreateFileWriter( "test.fnd");

// Save the PatternFinder object to the file

M_pPatternFinder.Save( pSerializer);

Remarks

This method allows to store several eVision objects in the same file by passing the same ESerializer object to several Save(ESerializer* serializer) calls.

The ESerializer object given as argument must have been previously created with a call to ESerializer::CreateFileWriter.

The serialization object contains a hidden pointer to the current position in the archive. This pointer represents the position where the next Save operation will take place. Moreover, each Save operation also

moves the pointer at the end of the just written object (the end of the file).

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 19/37

Added Topic: FoundPattern::DrawCenter

EasyFind Classes FoundPattern FoundPattern Properties FoundPattern::DrawCenter

FoundPattern::DrawCenter property

BOOL. Flag indicating if the FoundPattern::Draw method must draw the center of the FoundPattern.

The default value is TRUE.

Added Topic: FoundPattern::DrawBoundingBox

EasyFind Classes FoundPattern FoundPattern Properties FoundPattern::DrawBoundingBox

FoundPattern::DrawBoundingBox property

BOOL. Flag indicating if the FoundPattern::Draw method must draw the bounding box of the

FoundPattern. The default value is TRUE.

Added Topic: FoundPattern::DrawFeaturePoints

EasyFind Classes FoundPattern FoundPattern Properties FoundPattern::DrawFeaturePoints

FoundPattern::DrawFeaturePoints property

BOOL. Flag indicating if the FoundPattern::Draw method must draw the feature points of the

FoundPattern. The default value is FALSE.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 20/37

Updated Topic: FoundPattern::Draw

EasyFind Classes FoundPattern FoundPattern Methods Graphical interaction FoundPattern::Draw

FoundPattern::Draw

void FoundPattern::Draw(HDC hDC, FLOAT32 f32ZoomX = 1.f, FLOAT32 f32ZoomY = 0.f, FLOAT32

f32PanX = 0.f, FLOAT32 f32PanY = 0.f);

Draws the found pattern, in image coordinates.

Parameters

hDC Handle to the device context of the destination window.

f32ZzoomX Horizontal zooming factor.

f32ZoomY Vertical zooming factor. If set to 0, the horizontal zooming factor will be used for isotropic zooming.

f32PanX Horizontal panning factor.

f32PanY Vertical panning factor.

Remarks

This method draws different features of the found pattern, according to the value of properties FoundPattern::DrawCenter, FoundPattern::DrawBoundingBox and

FoundPattern::DrawFeaturepoints.

The f32ZoomX, f32ZoomY, f32PanX and f32PanY parameters can be used to scale and/or translate the drawing operations

Updated Topic: FoundPattern::Angle

EasyFind Classes FoundPattern FoundPattern Properties FoundPattern::Angle

FoundPattern::Angle property

Read-only. FLOAT32. The angle of the found instance, in the current angle unit.

Remarks

This returned value is always comprised in the range [– a half turn, + a half turn].

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 21/37

eVision ActiveX Reference Manual

Updated Topic: Save Method (PatternFinder control)

EasyFind Controls PatternFinder Methods Persistent Storage Save

Save method

Saves the learnt pattern and all the associated parameters to the given file. If no pattern is learnt, an error occurs.

Syntax

object.Save(PathName As String)

The Save method syntax has these parts:

Part Description

object A PatternFinder object.

PathName Full path and name specification of the storage file. Use of file extension .FND is recommended though not mandatory.

Added Topic: DrawCenter Property (FoundPatternArray control)

EasyFind Controls FoundPatternArray Properties DrawCenter

DrawCenter property

Boolean. Indicates if the DrawCurrentPattern method must draw the center of the FoundPatternArray.

The default value is True.

Syntax

object.DrawCenter[=bCenter]

The DrawCenter property syntax has these parts:

Part Description

object A FoundPatternArray object.

bCenter Boolean. The default value is True.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 22/37

Added Topic: DrawBoundingBox Property (FoundPatternArray

control)

EasyFind Controls FoundPatternArray Properties DrawBoundingBox

DrawBoundingBox property

Boolean. Indicates if the DrawCurrentPattern method must draw the bounding box of the

FoundPatternArray. The default value is True.

Syntax

object.DrawBoundingBox[=bBoundingBox]

The DrawBoundingBox property syntax has these parts:

Part Description

object A FoundPatternArray object.

bBoundingBox Boolean. The default value is True.

Added Topic: DrawFeaturePoints Property (FoundPatternArray

control)

EasyFind Controls FoundPatternArray Properties DrawFeaturePoints

DrawFeaturePoints property

Boolean. Indicates if the DrawCurrentPattern method must draw the feature points of the

FoundPatternArray. The default value is False.

Syntax

object.DrawFeaturePoints[=bFeaturePoints]

The DrawFeaturepoints property syntax has these parts:

Part Description

object A FoundPatternArray object.

bFeaturePoints Boolean. The default value is False.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 23/37

Updated Topic: Angle Property (FoundPatternArray control)

EasyFind Controls FoundPatternArray Properties Angle

Angle property

Read-only. Single. The angle of the found instance, in the current angle unit.

Syntax

object.Angle

The Angle property syntax has these parts:

Part Description

object A FoundPatternArray object.

Remarks

This returned value is always comprised in the range [– a half turn, + a half turn].

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 24/37

EasyOCV Library

eVision C++ Reference Manual

Added Topic: EOCVChar Construction

EasyOCV: Optical Character Verification Classes and Class members EOCVChar EOCVChar Class Members Construction EOCVChar Construction

EOCVChar Construction

Default constructor

EOCVChar::EOCVChar();

Constructs an OCVChar context.

Copy constructor

EOCVChar::EOCVChar(const EOCVChar& OcvChar);

Constructs an OCVChar context based on a pre-existing EOCVChar object.

Parameters

OcvChar Another EOCVChar object to be copied in the new EOCVChar object.

Added Topic: EOCVText Construction

EasyOCV: Optical Character Verification Classes and Class members EOCVText EOCVText Class Members Construction EOCVText Construction

EOCVText Construction

Default constructor

EOCVText::EOCVText();

Constructs an OCVText context.

Copy constructor

EOCVText::EOCVText(const EOCVText& OcvText);

Constructs an OCVText context based on a pre-existing EOCVText object.

Parameters

OcvText Another EOCVText object to be copied in the new EOCVText object.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 25/37

Updated Topic: Error Codes By Values

Appendix Error codes By values

Error Codes By Values

Added value :

11011 Image contrast is too low

E_ERROR_CONTRAST_TOO_LOW

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 26/37

EasyBarCode Library

eVision User Guide

Added Topic: Dealing with strings that contain NULL characters

EasyBarCode: Bar Code Reading Programming with EasyBarCode Dealing with strings that contain NULL characters

Dealing with strings that contain NULL characters

Please note that some symbologies support encoded strings that contain NULL characters.

In that case, the read buffer should not be treated like a zero-terminated C string. In order to support this, the user-supplied buffer is pre-filled with the -1 character (0xFF) before decoding.

Note. Decoding string that contain NULL characters is only supported in C++. End of note.

After decoding, the buffer contains the following :

B0 B1 B2 B3 B4 Bn-1 0 -1 -1 -1

length

where Bi are the decoded buffer characters (some of those possibly being NULL characters).

Usual C or C++ string functions cannot be used with such a buffer because they expect C strings that only contain a NULL character at their end.

To retrieve N, the actual buffer length, the recommended way is to traverse the string backwards and examine each character. The first NULL character encountered, when reading backwards, marks the end of the buffer.

The following C++ sample code illustrates this by showing how to cope with non-printable characters in a decoded buffer, including NULL characters.

It load an image from the hard disk, then creates an EBarCode object and uses its Read method to decode the barcode image into a 1024-byte buffer. Then, it computes the buffer length according to the rule written

above and iterates over all its characters. If a character is printable, it is written to the cout stream.

Otherwise, its hexadecimal representation is written, in another color, to the cout stream.

#include <windows.h>

#include <sstream>

#include <iomanip>

#include "Easy.h"

#include "EBarCode.h"

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 27/37

using Euresys::eVision::ThrowOnEError;

using namespace std;

int main( )

{

try

{

int i;

EImageBW8 image;

EBarCode barCode;

image.Load("c:\\temp\\^103S01SHB^0640331415B.bmp");

ThrowOnEError();

barCode.SetStandardSymbologies(BRC_EAN_13 | BRC_CODE_128 | BRC_EAN_128 | BRC_UPC_E);

barCode.SetAdditionalSymbologies(0);

barCode.SetVerifyChecksum(TRUE);

// Locate and read the barcode

const int BUFFER_LENGTH = 1024;

char buf[BUFFER_LENGTH];

barCode.Read(&image, buf, BUFFER_LENGTH);

ThrowOnEError();

// Now compute the buffer length (the EBarCode::Read method returns a buffer that

// ends with a '\0' char, then is padded with -1). In order to compute the length,

// we need to parse the buffer backwards and look for a zero.

int length = BUFFER_LENGTH;

for(i = BUFFER_LENGTH-1; i >=0; --i)

{

char curChar = buf[i];

if( curChar != -1)

{

length = i;

break;

}

}

// we'll display the non-printable characters as hexadecimal codes, in another

// color in order to easily tell them from the regular characters. to do this,

// we need access to the current console handle (Windows specific code)

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

// the following code dumps a barcode buffer to cout according to the following rules:

// - if a character is printable, it is displayed "as is"

// - otherwise, a textual escape sequence (0x0XX) is displayed, where XX is the

// hexadecimal character value.

for(int i = 0; i < length; ++i )

{

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 28/37

if(isprint(buf[i]))

{

SetConsoleTextAttribute(hConsole, 0x07); //white on black

cout << buf[i];

}

else

{

SetConsoleTextAttribute(hConsole, 0x0b); //cyan on black

cout << "\\" << setbase(16) << setw(2) << setfill('0') << static_cast<int>(buf[i]);

}

}

cout << endl;

}

catch(Euresys::eVision::Exception ex)

{

cerr << "Exception caught : " << ex.What() << endl;

}

}

eVision C++ Reference Manual

Added Topic: SetCursor

EasyBarCode: Bar Code Reading Classes and Class Members EBarCode Class Members Graphical interaction SetCursor

EBarCode::SetCursor

void SetCursor(INT32 n32CursorX, INT32 n32CursorY);

Sets the cursor current coordinates.

Parameters

n32CursorX/Y cursor current coordinates.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 29/37

eVision ActiveX Reference Manual

Added Topic: SetDragable Method

EasyBarCode: Bar Code Reading Controls EBarCode Methods Graphical interaction SetDragable

SetDragable method

Sets if the barcode is to be dragable (movable).

Syntax

object.SetDragable(bDragable As Boolean, bDaugthers As Boolean)

The SetDragable method syntax has these parts:

Part Description

object An EBarCode.

bDragable Boolean. True if the barcode can be dragged.

bDaugthers Boolean. True if the daughters of the barcode inherit of the same behavior.

Added Topic: SetResizable Method

EasyBarCode: Bar Code Reading Controls EBarCode Methods Graphical interaction SetResizable

SetResizable method

Sets if the barcode is to be resizable.

Syntax

object.SetResizable(bResizable As Boolean, bDaugthers As Boolean)

The SetResizable method syntax has these parts:

Part Description

object An EBarCode.

bResizable Boolean. True if the barcode can be resized.

bDaugthers Boolean. True if the daughters of the barcode inherit of the same behavior.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 30/37

Added Topic: SetRotatable Method

EasyBarCode: Bar Code Reading Controls EBarCode Methods Graphical interaction SetRotatable

SetRotatable method

Sets if the barcode is to be rotatable.

Syntax

object.SetRotatable(bRotatable As Boolean, bDaugthers As Boolean)

The SetRotatable method syntax has these parts:

Part Description

object An EBarCode.

bRotatable Boolean. True if the barcode can be rotated.

bDaugthers Boolean. True if the daughters of the barcode inherit of the same behavior.

Added Topic: SetCursor Method

EasyBarCode: Bar Code Reading Controls EBarCode Methods Graphical interaction SetCursor

SetCursor method

Sets the cursor current coordinates.

Syntax

object.SetCursor(nCursorX As Long, nCursorY As Long)

The SetCursor method syntax has these parts:

Part Description

object An EBarCode.

nCursorX/Y Cursor current coordinates.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 31/37

EasyMatrixCode Library

eVision C++ Reference Manual

Added Topic: DecodedData Property

EasyMatrixCode: Data Matrix Code Reading Classes MatrixCode MatrixCode Properties and Methods Properties General properties MatrixCode::DecodedData

MatrixCode::DecodedData property

Read-only. Vector<UINT8>. This vector contains all character values. This property enables the reading of information not coded as ASCII characters.

Added Topic: MaxHeightWidthRatio Property

EasyMatrixCode: Data Matrix Code Reading Classes MatrixCodeReader MatrixCodeReader Properties and Methods Properties General properties MatrixCodeReader::MaxHeightWidthRatio

MatrixCode:: MaxHeightWidthRatio property

Read-only. FLOAT32. Maximum value for a Data Matrix aspect ratio.

This property allows controlling what kind of objects are considered as potential MatrixCode instances in the image. When objects are found in the image, only those where the bounding box has an aspect ratio smaller than this value are taken into account for digitization and decoding.

The default value is 3.8, and should be adjusted if the MatrixCode cells in your image are non-square, or if your matrix code uses a very non-square symbology such as 32x8. The supplied value must lie between 0.0 and 5.0.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 32/37

eVision ActiveX Reference Manual

Added Topic: GetDecodedData Method

EasyMatrixCode: Data Matrix Code Reading Controls MatrixCode Methods GetDecodedData

GetDecodedData method

Gets the character value of given index. This index ranges from 0 to DecodedDataLength-1. This method enables the reading of information not coded as ASCII characters.

Syntax

object.GetDecodedData(Index As Long) As Integer

The GetDecodedData method syntax has these parts:

Part Description

object A MatrixCode object.

Index Index of the character to read.

Added Topic: MaxHeightWidthRatio Property

EasyMatrixCode: Data Matrix Code Reading Controls MatrixCodeReader Properties MaxHeightWidthRatio

MaxHeightWidthRatio method

Maximum value for a Data Matrix aspect ratio.

This property allows controlling what kind of objects are considered as potential MatrixCode instances in the image. When objects are found in the image, only those where the bounding box has an aspect ratio smaller than this value are taken into account for digitization and decoding.

The default value is 3.8, and should be adjusted if the MatrixCode cells in your image are non-square, or if your matrix code uses a very non-square symbology such as 32x8. The supplied value must lie between 0.0 and 5.0.

Syntax

object. MaxHeightWidthRatio As Single

Part Description

object A MatrixCodeReader object.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 33/37

Added Topic: DecodedDataLength Property

EasyMatrixCode: Data Matrix Code Reading Controls MatrixCode Properties General properties DecodedDataLength

DecodedDataLength property

Read-only. Long. Returns the length of the vector containing all character values.

Syntax

object.DecodedDataLength

The DecodedDataLength property syntax has these parts:

Part Description

object A MatrixCode object.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 34/37

EasyBGA Library

eVision C++ Reference Manual

Added Topic: SetCursor

EasyBGA: BGA Inspection Classes and Class Members EBGA Class Members Graphical interaction SetCursor

EBGA::SetCursor

void SetCursor(INT32 n32CursorX, INT32 n32CursorY);

Sets the cursor current coordinates.

Parameters

n32CursorX/Y Cursor current coordinates.

Added Topic: Closest

EasyBGA: BGA Inspection Classes and Class Members EBGA Class Members Graphical interaction Closest

EBGA::Closest

void Closest();

Computes the closest shape to the cursor.

Added Topic: GetClosestShape

EasyBGA: BGA Inspection Classes and Class Members EBGA Class Members Graphical interaction GetClosestShape

EBGA::GetClosestShape

EShape* GetClosestShape();

Retrieves the closest shape, as computed by Closest().

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 35/37

JpegHandler interface

eVision C++ Reference Manual

Added Topic: GetUpFieldBufferAddr

Easy: General library Classes and Class Members EJpegHandler EJpegHandler Class Members Data access GetUpFieldBufferAddr

EJpegHandler:: GetUpFieldBufferAddr

int GetUpFieldBufferAddr() const;

Returns the address of the up field buffer.

Added Topic: GetUpFieldBufferSize

Easy: General library Classes and Class Members EJpegHandler EJpegHandler Class Members Data access GetUpFieldBufferSize

EJpegHandler:: GetUpFieldBufferSize

int GetUpFieldBufferSize() const;

Returns the size of the up field buffer.

Added Topic: GetDownFieldBufferAddr

Easy: General library Classes and Class Members EJpegHandler EJpegHandler Class Members Data access GetDownFieldBufferAddr

EJpegHandler:: GetDownFieldBufferAddr

int GetdownFieldBufferAddr() const;

Returns the address of the down field buffer.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 36/37

Added Topic: GetDownFieldBufferSize

Easy: General library Classes and Class Members EJpegHandler EJpegHandler Class Members Data access GetDownFieldBufferSize

EJpegHandler:: GetDownFieldBufferSize

int GetDownFieldBufferSize() const;

Returns the size of the down field buffer.

Added Topic: GetTimeStampLowDWord

Easy: General library Classes and Class Members EJpegHandler EJpegHandler Class Members Data access GetTimeStampLowDWord

EJpegHandler:: GetTimeStampLowDWord

int GetTimeStampLowDWord() const;

Returns the low part of the time stamp.

Added Topic: GetTimeStampHighDWord

Easy: General library Classes and Class Members EJpegHandler EJpegHandler Class Members Data access GetTimeStampHighDWord

EJpegHandler:: GetTimeStampHighDWord

int GetTimeStampHighDWord() const;

Returns the high part of the time stamp.

Documentation Update for eVision 6.7.1

Copyright © EURESYS s.a. 1989-2008 Page 37/37

Copyright © EURESYS s.a. 1989-2008