GetWordTop Method (GdPictureOCR)
In This Topic
Returns the top y-coordinate of the bounding box of the specified word, that is a part of a specified OCR result.
This method uses a coordinate system, where the origin is in the top-left corner of the processed image and the units are pixels.
Syntax
'Declaration
Public Function GetWordTop( _
ByVal As String, _
ByVal As Integer _
) As Integer
public int GetWordTop(
string ,
int
)
public function GetWordTop(
: String;
: Integer
): Integer;
public function GetWordTop(
: String,
: int
) : int;
public: int GetWordTop(
string* ,
int
)
public:
int GetWordTop(
String^ ,
int
)
Parameters
- OCRResultID
- The unique result identifier of the executed OCR process obtained by the GdPictureOCR.RunOCR method.
- WordIdx
- The 0-based index of the word within the specified OCR result. It must be a value between 0 and GdPictureOCR.GetWordCount(OCRResultID) - 1.
Return Value
The top y-coordinate of the word's bounding box, in pixels.
Please always use the GdPictureOCR.GetStat method to determine if this method has been successful.
Example
How to get the position of recognized words within the OCR result.
Dim caption As String = "Example: GetWordTop"
Dim gdpictureOCR As GdPictureOCR = New GdPictureOCR
Dim gdpicturePDF As GdPicturePDF = New GdPicturePDF
'Load the PDF document.
If gdpicturePDF.LoadFromFile("input.pdf", False) = GdPictureStatus.OK Then
'Select the first page.
gdpicturePDF.SelectPage(1)
'Render this page to a 200 DPI image.
Dim image As Integer = gdpicturePDF.RenderPageToGdPictureImage(200, True)
If gdpicturePDF.GetStat = GdPictureStatus.OK AndAlso
gdpictureOCR.SetImage(image) = GdPictureStatus.OK Then
'Setting up the image is mandatory.
'Set up the OCR parameters.
gdpictureOCR.ResourcesFolder = "C:\Path\To\GdPicture.NET 14\Redist\OCR"
gdpictureOCR.AddLanguage(OCRLanguage.English)
gdpictureOCR.OCRMode = OCRMode.FavorAccuracy
'Set up the OCR context and the character list.
gdpictureOCR.Context = OCRContext.OCRContextSingleLine
gdpictureOCR.CharacterSet = "0123456789"
'Set up the area to be processed by the OCR.
gdpictureOCR.SetROI(100, 100, 200, 50)
'Run the OCR process to recognize the phone number.
Dim resID As String = gdpictureOCR.RunOCR()
If gdpictureOCR.GetStat = GdPictureStatus.OK Then
Dim wordCount As Integer = gdpictureOCR.GetWordCount(resID)
If gdpictureOCR.GetStat = GdPictureStatus.OK Then
Dim left As Integer = gdpictureOCR.GetWordLeft(resID, 0)
Dim top As Integer = gdpictureOCR.GetWordTop(resID, 0)
If gdpicturePDF.DrawRectangle(left, top,
gdpictureOCR.GetWordRight(resID, wordCount - 1) - left,
gdpictureOCR.GetWordBottom(resID, wordCount - 1) - top,
False, True) = GdPictureStatus.OK Then
MessageBox.Show("The recognized phone number area has been successfully drawn.", caption)
End If
'Save the page with drawn recognized phone number to the New PDF document.
If gdpicturePDF.SaveToFile("output.pdf") = GdPictureStatus.OK Then
MessageBox.Show("Done!", caption)
Else
MessageBox.Show("The file can't be saved. Status: " + gdpicturePDF.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The GetWordCount() method has failed with the status: " + gdpictureOCR.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The error occurred when running the OCR. Status: " + gdpictureOCR.GetStat().ToString(), caption)
End If
'Release the image.
GdPictureDocumentUtilities.DisposeImage(image)
Else
MessageBox.Show("The error occurred when creating or setting up the image. Status: " + gdpicturePDF.GetStat().ToString() + "/" + gdpictureOCR.GetStat().ToString(), caption)
End If
'Close the document.
gdpicturePDF.CloseDocument()
Else
MessageBox.Show("The file can't be loaded. Status: " + gdpicturePDF.GetStat().ToString(), caption)
End If
'Release resources.
gdpictureOCR.ReleaseOCRResults()
gdpictureOCR.Dispose()
gdpicturePDF.Dispose()
string caption = "Example: GetWordTop";
GdPictureOCR gdpictureOCR = new GdPictureOCR();
GdPicturePDF gdpicturePDF = new GdPicturePDF();
//Load the PDF document.
if (gdpicturePDF.LoadFromFile("input.pdf", false) == GdPictureStatus.OK)
{
//Select the first page.
gdpicturePDF.SelectPage(1);
//Render this page to a 200 DPI image.
int image = gdpicturePDF.RenderPageToGdPictureImage(200, true);
if ((gdpicturePDF.GetStat() == GdPictureStatus.OK) &&
(gdpictureOCR.SetImage(image) == GdPictureStatus.OK)) //Setting up the image is mandatory.
{
//Set up the OCR parameters.
gdpictureOCR.ResourcesFolder = "C:\\Path\\To\\GdPicture.NET 14\\Redist\\OCR";
gdpictureOCR.AddLanguage(OCRLanguage.English);
gdpictureOCR.OCRMode = OCRMode.FavorAccuracy;
//Set up the OCR context and the character list.
gdpictureOCR.Context = OCRContext.OCRContextSingleLine;
gdpictureOCR.CharacterSet = "0123456789";
//Set up the area to be processed by the OCR.
gdpictureOCR.SetROI(100, 100, 200, 50);
//Run the OCR process to recognize the phone number.
string resID = gdpictureOCR.RunOCR();
if (gdpictureOCR.GetStat() == GdPictureStatus.OK)
{
int wordCount = gdpictureOCR.GetWordCount(resID);
if (gdpictureOCR.GetStat() == GdPictureStatus.OK)
{
int left = gdpictureOCR.GetWordLeft(resID, 0);
int top = gdpictureOCR.GetWordTop(resID, 0);
if (gdpicturePDF.DrawRectangle(left, top,
gdpictureOCR.GetWordRight(resID, wordCount - 1) - left,
gdpictureOCR.GetWordBottom(resID, wordCount - 1) - top,
false, true) == GdPictureStatus.OK)
MessageBox.Show("The recognized phone number area has been successfully drawn.", caption);
//Save the page with drawn recognized phone number to the new PDF document.
if (gdpicturePDF.SaveToFile("output.pdf") == GdPictureStatus.OK)
MessageBox.Show("Done!", caption);
else
MessageBox.Show("The file can't be saved. Status: " + gdpicturePDF.GetStat().ToString(), caption);
}
else
MessageBox.Show("The GetWordCount() method has failed with the status: " + gdpictureOCR.GetStat().ToString());
}
else
MessageBox.Show("The error occurred when running the OCR. Status: " + gdpictureOCR.GetStat().ToString(), caption);
//Release the image.
GdPictureDocumentUtilities.DisposeImage(image);
}
else
MessageBox.Show("The error occurred when creating or setting up the image. Status: " + gdpicturePDF.GetStat().ToString() + "/" + gdpictureOCR.GetStat().ToString(), caption);
//Close the document.
gdpicturePDF.CloseDocument();
}
else
MessageBox.Show("The file can't be loaded. Status: " + gdpicturePDF.GetStat().ToString(), caption);
//Release resources.
gdpictureOCR.ReleaseOCRResults();
gdpictureOCR.Dispose();
gdpicturePDF.Dispose();
Example
How to get the position of recognized words within the OCR result.
Dim caption As String = "Example: GetWordTop"
Dim gdpictureOCR As GdPictureOCR = New GdPictureOCR
Dim gdpicturePDF As GdPicturePDF = New GdPicturePDF
'Load the PDF document.
If gdpicturePDF.LoadFromFile("input.pdf", False) = GdPictureStatus.OK Then
'Select the first page.
gdpicturePDF.SelectPage(1)
'Render this page to a 200 DPI image.
Dim image As Integer = gdpicturePDF.RenderPageToGdPictureImage(200, True)
If gdpicturePDF.GetStat = GdPictureStatus.OK AndAlso
gdpictureOCR.SetImage(image) = GdPictureStatus.OK Then
'Setting up the image is mandatory.
'Set up the OCR parameters.
gdpictureOCR.ResourcesFolder = "C:\Path\To\GdPicture.NET 14\Redist\OCR"
gdpictureOCR.AddLanguage(OCRLanguage.English)
gdpictureOCR.OCRMode = OCRMode.FavorAccuracy
'Set up the OCR context and the character list.
gdpictureOCR.Context = OCRContext.OCRContextSingleLine
gdpictureOCR.CharacterSet = "0123456789"
'Set up the area to be processed by the OCR.
gdpictureOCR.SetROI(100, 100, 200, 50)
'Run the OCR process to recognize the phone number.
Dim resID As String = gdpictureOCR.RunOCR()
If gdpictureOCR.GetStat = GdPictureStatus.OK Then
Dim wordCount As Integer = gdpictureOCR.GetWordCount(resID)
If gdpictureOCR.GetStat = GdPictureStatus.OK Then
Dim left As Integer = gdpictureOCR.GetWordLeft(resID, 0)
Dim top As Integer = gdpictureOCR.GetWordTop(resID, 0)
If gdpicturePDF.DrawRectangle(left, top,
gdpictureOCR.GetWordRight(resID, wordCount - 1) - left,
gdpictureOCR.GetWordBottom(resID, wordCount - 1) - top,
False, True) = GdPictureStatus.OK Then
MessageBox.Show("The recognized phone number area has been successfully drawn.", caption)
End If
'Save the page with drawn recognized phone number to the New PDF document.
If gdpicturePDF.SaveToFile("output.pdf") = GdPictureStatus.OK Then
MessageBox.Show("Done!", caption)
Else
MessageBox.Show("The file can't be saved. Status: " + gdpicturePDF.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The GetWordCount() method has failed with the status: " + gdpictureOCR.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The error occurred when running the OCR. Status: " + gdpictureOCR.GetStat().ToString(), caption)
End If
'Release the image.
GdPictureDocumentUtilities.DisposeImage(image)
Else
MessageBox.Show("The error occurred when creating or setting up the image. Status: " + gdpicturePDF.GetStat().ToString() + "/" + gdpictureOCR.GetStat().ToString(), caption)
End If
'Close the document.
gdpicturePDF.CloseDocument()
Else
MessageBox.Show("The file can't be loaded. Status: " + gdpicturePDF.GetStat().ToString(), caption)
End If
'Release resources.
gdpictureOCR.ReleaseOCRResults()
gdpictureOCR.Dispose()
gdpicturePDF.Dispose()
string caption = "Example: GetWordTop";
GdPictureOCR gdpictureOCR = new GdPictureOCR();
GdPicturePDF gdpicturePDF = new GdPicturePDF();
//Load the PDF document.
if (gdpicturePDF.LoadFromFile("input.pdf", false) == GdPictureStatus.OK)
{
//Select the first page.
gdpicturePDF.SelectPage(1);
//Render this page to a 200 DPI image.
int image = gdpicturePDF.RenderPageToGdPictureImage(200, true);
if ((gdpicturePDF.GetStat() == GdPictureStatus.OK) &&
(gdpictureOCR.SetImage(image) == GdPictureStatus.OK)) //Setting up the image is mandatory.
{
//Set up the OCR parameters.
gdpictureOCR.ResourcesFolder = "C:\\Path\\To\\GdPicture.NET 14\\Redist\\OCR";
gdpictureOCR.AddLanguage(OCRLanguage.English);
gdpictureOCR.OCRMode = OCRMode.FavorAccuracy;
//Set up the OCR context and the character list.
gdpictureOCR.Context = OCRContext.OCRContextSingleLine;
gdpictureOCR.CharacterSet = "0123456789";
//Set up the area to be processed by the OCR.
gdpictureOCR.SetROI(100, 100, 200, 50);
//Run the OCR process to recognize the phone number.
string resID = gdpictureOCR.RunOCR();
if (gdpictureOCR.GetStat() == GdPictureStatus.OK)
{
int wordCount = gdpictureOCR.GetWordCount(resID);
if (gdpictureOCR.GetStat() == GdPictureStatus.OK)
{
int left = gdpictureOCR.GetWordLeft(resID, 0);
int top = gdpictureOCR.GetWordTop(resID, 0);
if (gdpicturePDF.DrawRectangle(left, top,
gdpictureOCR.GetWordRight(resID, wordCount - 1) - left,
gdpictureOCR.GetWordBottom(resID, wordCount - 1) - top,
false, true) == GdPictureStatus.OK)
MessageBox.Show("The recognized phone number area has been successfully drawn.", caption);
//Save the page with drawn recognized phone number to the new PDF document.
if (gdpicturePDF.SaveToFile("output.pdf") == GdPictureStatus.OK)
MessageBox.Show("Done!", caption);
else
MessageBox.Show("The file can't be saved. Status: " + gdpicturePDF.GetStat().ToString(), caption);
}
else
MessageBox.Show("The GetWordCount() method has failed with the status: " + gdpictureOCR.GetStat().ToString());
}
else
MessageBox.Show("The error occurred when running the OCR. Status: " + gdpictureOCR.GetStat().ToString(), caption);
//Release the image.
GdPictureDocumentUtilities.DisposeImage(image);
}
else
MessageBox.Show("The error occurred when creating or setting up the image. Status: " + gdpicturePDF.GetStat().ToString() + "/" + gdpictureOCR.GetStat().ToString(), caption);
//Close the document.
gdpicturePDF.CloseDocument();
}
else
MessageBox.Show("The file can't be loaded. Status: " + gdpicturePDF.GetStat().ToString(), caption);
//Release resources.
gdpictureOCR.ReleaseOCRResults();
gdpictureOCR.Dispose();
gdpicturePDF.Dispose();
See Also