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 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.