Nicomsoft OCR: Developer's Guide |
C++: | int Blk_SetRect(HBLK BlkObj, int Xpos, int Ypos, int Width, int Height) |
C#: | int Blk_SetRect(int BlkObj, int Xpos, int Ypos, int Width, int Height) |
Visual Basic: | Function Blk_SetRect(ByVal BlkObj As Integer, ByVal Xpos As Integer, ByVal Ypos As Integer, ByVal Width As Integer, ByVal Height As Integer) As Integer |
Java: | int Blk_SetRect(HBLK BlkObj, int Xpos, int Ypos, int Width, int Height) |
Delphi: | function Blk_SetRect(BlkObj:HBLK; Xpos:integer; Ypos:integer; Width:integer; Height:integer):integer |
BlkObj [IN] – the Block object. | |
Xpos [IN] – the new X coordinate of the top-left corner of the block, in pixels. | |
Ypos [IN] – the new Y coordinate of the top-left corner of the block, in pixels. | |
Width [IN] – the new width of the block, in pixels. | |
Height [IN] – the new height of the block, in pixels. |
int CfgObj, OcrObj, ImgObj, BlkObj, res, n, Width, Height; wchar_t* txt; Engine_InitializeAdvanced(&CfgObj, &OcrObj, &ImgObj); //initialize OCR engine, create objects and load configuration res = Img_LoadFile(ImgObj, L"c:\\sample.bmp"); //load some image for OCR if (res > ERROR_FIRST) {}; //insert error handler here Img_GetSize(ImgObj, &Width, &Height); //get original image size Img_AddBlock(ImgObj, 0, 0, Width, Height, &BlkObj); //create zone that covers entire image Blk_SetRect(BlkObj, 0, 0, Width, Height / 2); //resize zone; just a sample, correct zone size could be specified at Img_AddBlock call Blk_SetType(BlkObj, BT_OCRTEXT); //mark zone as machine-printed text; just a sample, blocks that were created with Img_AddBlock already BT_OCRTEXT Blk_SetWordRegEx(BlkObj, -1, -1, L"*", REGEX_SET); //set regular expression for every word in zone res = Img_OCR(ImgObj, OCRSTEP_FIRST, OCRSTEP_LAST, OCRFLAG_NONE); //perform OCR for top half of image if (res > ERROR_FIRST) {}; //insert error handler here n = Img_GetImgText(ImgObj, NULL, 0, FMT_EXACTCOPY) + 1; //get buffer size plus terminating NULL character txt = (wchar_t*) malloc(sizeof(wchar_t) * n); //allocate memory for text Img_GetImgText(ImgObj, txt, n, FMT_EXACTCOPY); //get text Engine_Uninitialize(); //release all created objects and uninitialize OCR engine //use "txt" value now free(txt); //free memory
//assume reference to NSOCR COM was added using NSOCR_NameSpace; //Add NSOCR namespace from "NSOCR.cs" file //... int CfgObj, OcrObj, ImgObj, BlkObj, res, Width, Height; string txt; NSOCRLib.NSOCRClass NsOCR = new NSOCRLib.NSOCRClass(); //create NSOCR COM object instance NsOCR.Engine_InitializeAdvanced(out CfgObj, out OcrObj, out ImgObj); //initialize OCR engine, create objects and load configuration res = NsOCR.Img_LoadFile(ImgObj, "c:\\sample.bmp"); //load some image for OCR if (res > TNSOCR.ERROR_FIRST) {}; //insert error handler here NsOCR.Img_GetSize(ImgObj, out Width, out Height); //get original image size NsOCR.Img_AddBlock(ImgObj, 0, 0, Width, Height, out BlkObj); //create zone that covers entire image NsOCR.Blk_SetRect(BlkObj, 0, 0, Width, Height / 2); //resize zone; just a sample, correct zone size could be specified at Img_AddBlock call NsOCR.Blk_SetType(BlkObj, TNSOCR.BT_OCRTEXT); //mark zone as machine-printed text; just a sample, blocks that were created with Img_AddBlock already BT_OCRTEXT NsOCR.Blk_SetWordRegEx(BlkObj, -1, -1, "*", TNSOCR.REGEX_SET); //set regular expression for every word in zone res = NsOCR.Img_OCR(ImgObj, TNSOCR.OCRSTEP_FIRST, TNSOCR.OCRSTEP_LAST, TNSOCR.OCRFLAG_NONE); //perform OCR if (res > TNSOCR.ERROR_FIRST) {}; //insert error handler here NsOCR.Img_GetImgText(ImgObj, out txt, TNSOCR.FMT_EXACTCOPY); //get text NsOCR.Engine_Uninitialize(); //release all created objects and uninitialize OCR engine
'assume reference to NSOCR COM was added 'assume "NSOCR.vb" file was added to project Dim CfgObj, OcrObj, ImgObj, BlkObj, res, Width, Height As Integer Dim txt As String = "" Dim NsOCR As New NSOCRLib.NSOCRClass 'create NSOCR COM object instance NsOCR.Engine_InitializeAdvanced(CfgObj, OcrObj, ImgObj) 'initialize OCR engine, create objects and load configuration res = NsOCR.Img_LoadFile(ImgObj, "c:\sample.bmp") 'load some image for OCR If res > TNSOCR.ERROR_FIRST Then 'insert error handler here End If NsOCR.Img_GetSize(ImgObj, Width, Height) 'get original image size NsOCR.Img_AddBlock(ImgObj, 0, 0, Width, Height, BlkObj) 'create zone that covers entire image NsOCR.Blk_SetRect(BlkObj, 0, 0, Width, Height / 2) 'resize zone; just a sample, correct zone size could be specified at Img_AddBlock call NsOCR.Blk_SetType(BlkObj, TNSOCR.BT_OCRTEXT) 'mark zone as machine-printed text; just a sample, blocks that were created with Img_AddBlock already BT_OCRTEXT NsOCR.Blk_SetWordRegEx(BlkObj, -1, -1, "*", TNSOCR.REGEX_SET) 'set regular expression for every word in zone res = NsOCR.Img_OCR(ImgObj, TNSOCR.OCRSTEP_FIRST, TNSOCR.OCRSTEP_LAST, TNSOCR.OCRFLAG_NONE) 'perform OCR If res > TNSOCR.ERROR_FIRST Then 'insert error handler here End If NsOCR.Img_GetImgText(ImgObj, txt, TNSOCR.FMT_EXACTCOPY) 'get text NsOCR.Engine_Uninitialize() 'release all created objects and uninitialize OCR engine
//assume NSOCR package was included //Java VM option "-Djava.library.path" must point to "Bin" folder (x86 platform) or to "Bin_64" folder (x64 platform) //... NSOCR.HCFG CfgObj = new NSOCR.HCFG(); NSOCR.HOCR OcrObj = new NSOCR.HOCR(); NSOCR.HIMG ImgObj = new NSOCR.HIMG(); NSOCR.HBLK BlkObj = new NSOCR.HBLK(); int res; NSOCR.NSInt Width, Height; Width = new NSOCR.NSInt(0); Height = new NSOCR.NSInt(0); StringBuffer txt = new StringBuffer(); NSOCR.Engine.Engine_InitializeAdvanced(CfgObj, OcrObj, ImgObj); //initialize OCR engine, create objects and load configuration res = NSOCR.Engine.Img_LoadFile(ImgObj, "c:\\sample.bmp"); //load some image for OCR if (res > NSOCR.Error.ERROR_FIRST) {}; //insert error handler here NSOCR.Engine.Img_GetSize(ImgObj, Width, Height); //get original image size NSOCR.Engine.Img_AddBlock(ImgObj, 0, 0, Width.GetValue(), Height.GetValue(), BlkObj); //create zone that covers entire image NSOCR.Engine.Blk_SetRect(BlkObj, 0, 0, Width.GetValue(), Height.GetValue() / 2); //resize zone; just a sample, correct zone size could be specified at Img_AddBlock call NSOCR.Engine.Blk_SetType(BlkObj, NSOCR.Constant.BT_OCRTEXT); //mark zone as machine-printed text; just a sample, blocks that were created with Img_AddBlock already BT_OCRTEXT NSOCR.Engine.Blk_SetWordRegEx(BlkObj, -1, -1, "*", NSOCR.Constant.REGEX_SET); //set regular expression for every word in zone res = NSOCR.Engine.Img_OCR(ImgObj, NSOCR.Constant.OCRSTEP_FIRST, NSOCR.Constant.OCRSTEP_LAST, NSOCR.Constant.OCRFLAG_NONE); //perform OCR if (res > NSOCR.Error.ERROR_FIRST) {}; //insert error handler here NSOCR.Engine.Img_GetImgText(ImgObj, txt, NSOCR.Constant.FMT_EXACTCOPY); //get text System.out.println(txt.toString()); NSOCR.Engine.Engine_Uninitialize(); //release all created objects and uninitialize OCR engine