ImageEn, unit iexHelperFunctions |
|
TIEBitmapHelper.OCR
Declaration
function OCR(Language: TIEOCRLanguages = OCR_English_Language; SegmentationMode: TIEVisionOCRPageSegmentationMode = ievOCRAuto; const LanguagePath: string = ''; Engine: TIEVisionOCREngine = ievOCRDefault): string; overload;
function OCR(OcrRect: TRect; Language: TIEOCRLanguages = OCR_English_Language; SegmentationMode: TIEVisionOCRPageSegmentationMode = ievOCRAuto; const LanguagePath: string = ''; Engine: TIEVisionOCREngine = ievOCRDefault): string; overload;
function OCR(const LanguageCode: string; SegmentationMode: TIEVisionOCRPageSegmentationMode = ievOCRAuto; const LanguagePath: string = ''; Engine: TIEVisionOCREngine = ievOCRDefault): string; overload;
function OCR(OcrRect: TRect; const LanguageCode: string; SegmentationMode: TIEVisionOCRPageSegmentationMode = ievOCRAuto; const LanguagePath: string = ''; Engine: TIEVisionOCREngine = ievOCRDefault): string; overload;
Description
A shortcut method that creates a
TIEVisionOCR object and calls
recognize to return all detected text in the image.
You can specify a rect to limit recognition to an area of the image (to speed up processing). Specify Rect(0,0,0,0) to recognize the whole image.
The language can be specified by
type or as a language code string (e.g. 'eng').
Optionally you can specify the
segmentation mode, path that contains the language file and
OCR engine.
Note:
◼You must add the iexHelperFunctions unit to your uses clause
◼LanguagePath and Engine cannot be changed after first use (without restarting the application)
◼You wil require a TrainedData file for the specified language (e.g. "eng.TrainedData"). An exception is raised if it is not found
◼OCR requires
IEVision. You will need to
register it before calling the method
Method Behaviour
The following call:
ocrText := ImageEnView1.IEBitmap.OCR( OCR_English_Language, ievOCRAuto );
Is the same as calling:
// create OCR object
mOCR := IEVisionLib.createOCR(PAnsiChar( AnsiString( '' )), PAnsiChar( AnsiString( IEOCRLanguageList[langCode].Code )), ievOCRDefault );
// set page layout
mOCR.setSegmentationMode( ievOCRAuto );
// OCR
r := IEVisionRect( 0, 0, ImageEnView1.IEBitmap.Width, ImageEnView1.IEBitmap.Height );
ocrText := mOCR.recognize( ImageEnView1.IEBitmap.GetIEVisionImage(), r ).c_str();
| Demos\ImageEditing\EveryMethod\EveryMethod.dpr |
// Detect text in the image
ShowTempHourglass();
r := IERectangleToRect( ImageEnView1.SelectedRect ); // Get selection (if any)
Memo1.Lines.Text := ImageEnView1.IEBitmap.OCR( OCR_English_Language, ievOCRAuto );
See Also
◼TIEOCRLanguages◼LanguageExistsInFolder◼IEVisionLanguageCodeToName◼IEVisionLanguageNameToCode