Dim caption As String = "Example: GetWordBottom"
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 wordCount As Integer = gdpictureSegmenter.GetWordCount(resultID)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then
Dim message As String = "The number of detected words: "
message = message + wordCount.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 wordCount - 1
top = gdpictureSegmenter.GetWordTop(resultID, i)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then left = gdpictureSegmenter.GetWordLeft(resultID, i)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then bottom = gdpictureSegmenter.GetWordBottom(resultID, i)
If gdpictureSegmenter.GetStat() = GdPictureStatus.OK Then right = gdpictureSegmenter.GetWordRight(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() + ".word has failed to get its position. Status: " + gdpictureSegmenter.GetStat().ToString() + vbCrLf
End If
Next
If wordCount = 0 Then
message = message + "The resulting image HAS NOT been created."
Else
If save = wordCount 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 GetWordCount() 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: GetWordBottom";
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 wordCount = gdpictureSegmenter.GetWordCount(resultID);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
{
string message = "The number of detected words: ";
message = message + wordCount.ToString() + "\n";
int top = 0, left = 0, bottom = 0, right = 0, save = 0;
for (int i = 0; i < wordCount; i++)
{
top = gdpictureSegmenter.GetWordTop(resultID, i);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
left = gdpictureSegmenter.GetWordLeft(resultID, i);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
bottom = gdpictureSegmenter.GetWordBottom(resultID, i);
if (gdpictureSegmenter.GetStat() == GdPictureStatus.OK)
right = gdpictureSegmenter.GetWordRight(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() + ".word has failed to get its position. Status: " + gdpictureSegmenter.GetStat().ToString() + "\n";
}
if (wordCount == 0)
{
message = message + "The resulting image HAS NOT been created.";
}
else
{
if (save == wordCount)
{
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 GetWordCount() 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();
}