IEVision is an optional plugin for ImageEn which adds advanced features. IEVision is sold separately from ImageEn. It can be purchased from:

Feature Description More Info Demo Project Folder Compiled Demo
OCR Optical character recognition supporting more than 100 languages TIEVisionOCR IEVision\OCR\OCR.dpr   
Barcode Reading (Images) Reading barcodes in images and videos, with support for EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code TIEVisionBarCodeScanner IEVision\Barcode\Barcode.dpr   
Barcode Reading (Video) Reading barcodes in live videos, with support for EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 and QR Code TIEVisionBarCodeScanner IEVision\BarcodeCam\BarcodeCam.dpr   
Facial Recognition Searching for known faces TIEVisionFaceRecognizer IEVision\FaceRecognizer\FaceRecognizer.dpr   
Human and Object Detection Finding people, faces, eyes, glasses, smile, body (full/upper/lower), cat faces and Russian number plates TIEVisionObjectsFinder IEVision\GetFaces\GetFaces.dpr   
Classifying Images Image classification by training with positive and negative samples TIEVisionCascadeClassifierTrainer IEVision\TrainCascadeClassifier\TrainCascadeClassifier.dpr   
Matching Points in Image Set Finding points that match in a set of two images, e.g. to auto-align an image TIEVisionORBFeaturesDetector IEVision\ImageAlignment\ImageAlignment.dpr   
Auto Image Alignment Warping the perspective of an image based on matching points (homography matrix) TIEVisionMath.findHomography IEVision\ImageAlignment\ImageAlignment.dpr   
Matching within Image Searching an image for matches based on a source image TIEVisionImage.matchTemplate IEVision\PatternMatching\PatternMatching.dpr   
Track Objects (Video) Tracking (following) faces and objects in a video stream TIEVisionObjectTracker IEVision\TrackObjects\TrackObjects.dpr   
Blob Detection Locating blobs/shapes within an image TIEVisionBlobDetector IEVision\BlobDetection\BlobDetection.dpr   
Background Removal (Images) Subtracting the background from an image using a source background image TIEVisionBackgroundSubtractor IEVision\BackgroundSubtractImage\BackgroundSubtractImage.dpr   
Background Removal (Video) Live replacement of the background of a video stream TIEVisionBackgroundSubtractor IEVision\BackgroundSubtract\BackgroundSubtract.dpr   
Photo Stitching Generating a single image from multiple source images TIEVisionStitcher IEVision\Stitcher\Stitcher.dpr   
Image Patching Inpainting images to hide blemishes and copy content TIEVisionImage.inpaint IEVision\Inpaint_Brush\Inpaint_Brush.dpr   
Searchable PDF Generation Convert images containing text to searchable PDF files TIEVisionSearchablePDFGenerator IEVision\GenerateSearchablePDF\GenerateSearchablePDF.dpr   
Watershed Automatic Selection Automatic selection of objects by painting TIEVisionWatershed IEVision\WatershedSelection\WatershedSelection.dpr   
Grabcut Automatic Selection Automatic selection of the main subject within an image TIEVisionGrabCut IEVision\GrabCutSelection\GrabCutSelection.dpr   
Denoising Removal of digital noise using the "Non-local Means" algorithm fastNlMeansDenoisingColored IEVision\Denoising\Denoising.dpr   
Exposure Fusion Merge images taken with multiple exposures into a single image TIEVisionExposureMerger IEVision\ExposureFusion\ExposureFusion.dpr   
Edge Detection Detection of edges within an image using the "Canny" algorithm TIEVisionImage.canny IEVision\LinesDetect\LinesDetect.dpr   
Line Detection Detection of lines within an image using Hough transformations TIEVisionImage.houghLines IEVision\LinesDetect\LinesDetect.dpr   
Other Advanced Image Algorithms Blurring, Smoothing, Dilation, Erosion and Threshold TIEVisionImage ImageEditing\BrushTool\PaintBrush.dpr   



Face Detection

People Detection

Facial Recognition

Background Removal

Auto Image Alignment

Object Tracking

Image Matching

Photo Stitching

Blob Detection

Classifier Training

Watershed Selection

GrabCut Selection

Barcode Scanning

Line Detection

IEVision Usage

In order to use IEVision you must copy the IEVision DLL to the same folder as your executable or in any location in the system path.
You can check if the IEVision DLL is accessible by ImageEn calling IEVisionAvailable function. For example:

if IEVisionAvailable() = False then
  ShowMessage('This application requires the IEVision.dll plugin');

The ievision unit exports all interfaces and global methods, plus the IEVisionLib public field which encapsulates the factory class TIEVisionLibrary.

It is possible to encapsulate an ImageEn bitmap (TIEBitmap) inside a IEVision bitmap (TIEVisionImage), but it is necessary to change the TIEBitmap origin. For example:

ImageEnView1.IEBitmap.Origin := ieboTOPLEFT;
image := IEVisionLib.createImage(ImageEnView1.IEBitmap.Width, ImageEnView1.IEBitmap.Height,
                                 ievUINT8, 3, ImageEnView1.IEBitmap.Rowlen,

This way you can access all IEVision functions and share the results to a TImageEnView embedded image. It is also possible to create an IEVision image from scratch and then copy it to TIEBitmap or TImageEnView.

An alternative way is to use GetIEVisionImage which sets the bitmap origin and pixel format for you:

image := ImageEnView1.IEBitmap.GetIEVisionImage();

All IEVision objects are implemented as COM objects, so you don't need to handle object destruction (it happens automatically at runtime).
For example, if you create an IEVision image with:

image := IEVisionLib.createImage(1000, 1000, ievUINT8, 3);

You don't need to free or dispose it.