Dim caption As String = "Example: GetTextLineBottom"
Using gdpictureSegmenter As GdPictureSegmenter = New GdPictureSegmenter()
Using gdpictureImaging As GdPictureImaging = New GdPictureImaging()
'Set up the image you want to process.
Dim image As Integer = gdpictureImaging.CreateGdPictureImageFromFile("input.tif")
If (gdpictureImaging.GetStat() = GdPictureStatus.OK) AndAlso
(gdpictureSegmenter.SetImage(image) = GdPictureStatus.OK) Then
'Set the segmentation mode.
gdpictureSegmenter.SegmentationMode = SegmentationMode.ConnectedComponents4
'Run the segmentation process.
Dim resultID As String = gdpictureSegmenter.RunSegmentation()
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then
'Check the results.
Dim textlineCount As Integer = gdpictureSegmenter.GetTextLineCount(resultID)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then
Dim message As String = "The number of detected text lines: "
message = message + textlineCount.ToString() + vbCrLf
Dim top As Integer = 0, left As Integer = 0, bottom As Integer = 0, right As Integer = 0, save As Integer = 0
For i As Integer = 0 To textlineCount - 1
top = gdpictureSegmenter.GetTextLineTop(resultID, i)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then left = gdpictureSegmenter.GetTextLineLeft(resultID, i)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then bottom = gdpictureSegmenter.GetTextLineBottom(resultID, i)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then right = gdpictureSegmenter.GetTextLineRight(resultID, i)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then
If gdpictureImaging.DrawRectangle(image, left, top, right - left, bottom - top, 5, Color.Brown, True) = GdPictureStatus.OK Then
message = message + (i + 1).ToString() + ".rectangle has been drawn." + vbCrLf
save += 1
Else
message = message + (i + 1).ToString() + ".rectangle HAS NOT been drawn. Status: " + gdpictureSegmenter.GetStat().ToString() + vbCrLf
End If
Else
message = message + i.ToString() + ".text line has failed to get its position. Status: " + gdpictureSegmenter.GetStat().ToString() + vbCrLf
End If
Next
If textlineCount = 0 Then
message = message + "The resulting image HAS NOT been created."
Else
If save = textlineCount Then
If gdpictureImaging.SaveAsTIFF(image, "output.tif", TiffCompression.TiffCompressionAUTO) = GdPictureStatus.OK Then
message = message + "The resulting image HAS been saved successfully."
Else
message = message + "The resulting image HAS NOT been saved. Status: " + gdpictureImaging.GetStat().ToString()
End If
End If
End If
MessageBox.Show(message, caption)
Else
MessageBox.Show("The GetTextLineCount() method has failed with the status: " + gdpictureSegmenter.GetStat().ToString(), caption)
End If
Else
MessageBox.Show("The segmentation process has failed with the status: " + gdpictureSegmenter.GetStat().ToString(), caption)
End If
'Release the used image.
gdpictureImaging.ReleaseGdPictureImage(image)
Else
MessageBox.Show("The error occurred when setting up the image: " + gdpictureImaging.GetStat().ToString() + " or " + gdpictureSegmenter.GetStat().ToString(), caption)
End If
End Using
'Release resources.
gdpictureSegmenter.ReleaseSegmentationResults()
End Using
string caption = "Example: GetTextLineBottom";
using (GdPictureSegmenter gdpictureSegmenter = new GdPictureSegmenter())
{
//Set up the image you want to process.
using (GdPictureImaging gdpictureImaging = new GdPictureImaging())
{
//The standard open file dialog displays to allow you to select the file.
int image = gdpictureImaging.CreateGdPictureImageFromFile("input.tif");
if ((gdpictureImaging.GetStat() == GdPictureStatus.OK) &&
(gdpictureSegmenter.SetImage(image) == GdPictureStatus.OK))
{
//Set the segmentation mode.
gdpictureSegmenter.SegmentationMode = SegmentationMode.ConnectedComponents4;
//Run the segmentation process.
string resultID = gdpictureSegmenter.RunSegmentation();
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
{
//Check the results.
int textlineCount = gdpictureSegmenter.GetTextLineCount(resultID);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
{
string message = "The number of detected text lines: ";
message = message + textlineCount.ToString() + "\n";
int top = 0, left = 0, bottom = 0, right = 0, save = 0;
for (int i = 0; i < textlineCount; i++)
{
top = gdpictureSegmenter.GetTextLineTop(resultID, i);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
left = gdpictureSegmenter.GetTextLineLeft(resultID, i);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
bottom = gdpictureSegmenter.GetTextLineBottom(resultID, i);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
right = gdpictureSegmenter.GetTextLineRight(resultID, i);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
{
if (gdpictureImaging.DrawRectangle(image, left, top, right - left, bottom - top, 5, Color.Brown, true) == GdPictureStatus.OK)
{
message = message + (i + 1).ToString() + ".rectangle has been drawn.\n";
save++;
}
else
message = message + (i + 1).ToString() + ".rectangle HAS NOT been drawn. Status: " + gdpictureSegmenter.GetStat().ToString() + "\n";
}
else
message = message + i.ToString() + ".paragraph has failed to get its position. Status: " + gdpictureSegmenter.GetStat().ToString() + "\n";
}
if (textlineCount == 0)
{
message = message + "The resulting image HAS NOT been created.";
}
else
{
if (save == textlineCount)
{
if (gdpictureImaging.SaveAsTIFF(image, "output.tiff", TiffCompression.TiffCompressionAUTO) == GdPictureStatus.OK)
message = message + "The resulting image HAS been saved successfully.";
else
message = message + "The resulting image HAS NOT been saved. Status: " + gdpictureImaging.GetStat().ToString();
}
}
MessageBox.Show(message, caption);
}
else
MessageBox.Show("The GetTextLineCount() method has failed with the status: " + gdpictureSegmenter.GetStat().ToString(), caption);
}
else
MessageBox.Show("The segmentation process has failed with the status: " + gdpictureSegmenter.GetStat().ToString(), caption);
//Release the used image.
gdpictureImaging.ReleaseGdPictureImage(image);
}
else
MessageBox.Show("The error occurred when setting up the image: " + gdpictureImaging.GetStat().ToString() + " or " + gdpictureSegmenter.GetStat().ToString(), caption);
}
//Release resources.
gdpictureSegmenter.ReleaseSegmentationResults();
}