The unique result identifier of the executed segmentation process obtained by the RunSegmentation method.
The 0-based index of the text line within the specified segmentation result. It must be a value between 0 and GetTextLineCount(SegmentationResultID)-1.
Example





In This Topic

GetTextLineLeft Method (GdPictureSegmenter)

In This Topic
Returns the left x-coordinate of the bounding box of the specified text line, that is a part of the segmentation result specified by its index.

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 GetTextLineLeft( _

   ByVal SegmentationResultID As String, _

   ByVal TextLineIdx As Integer _

) As Integer
public int GetTextLineLeft( 

   string SegmentationResultID,

   int TextLineIdx

)
public function GetTextLineLeft( 

    SegmentationResultID: String;

    TextLineIdx: Integer

): Integer; 
public function GetTextLineLeft( 

   SegmentationResultID : String,

   TextLineIdx : int

) : int;
public: int GetTextLineLeft( 

   string* SegmentationResultID,

   int TextLineIdx

) 
public:

int GetTextLineLeft( 

   String^ SegmentationResultID,

   int TextLineIdx

) 

Parameters

SegmentationResultID
The unique result identifier of the executed segmentation process obtained by the RunSegmentation method.
TextLineIdx
The 0-based index of the text line within the specified segmentation result. It must be a value between 0 and GetTextLineCount(SegmentationResultID)-1.

Return Value

The left x-coordinate of the text line's bounding box, in pixels.

Please always use the GetStat method to determine if this method has been successful.

Remarks
It is recommend to use the GetStat method to identify the specific reason for the method's failure, if any.

Please note, that the origin of the used coordinate system is in the top-left corner of the processed image and the used units are pixels.

Example
How to find out detected text lines within the segmentation result. All text lines are subsequently color-coded and saved into the output file.
Dim caption As String = "Example: GetTextLineLeft"

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: GetTextLineLeft";

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();

}
See Also