MrcSegmenter Class
Summary
MrcSegmenter represents the main class that contains all methods needed to perform a full segmentation process.
Syntax
public class MrcSegmenter : System.IDisposable
Public Class MrcSegmenter
Implements System.IDisposable
public ref class MrcSegmenter : public System.IDisposable
Example
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Mrc
Private Function MrcEnumerateSegmentInfoCallback(ByVal segmentHandle As MrcSegmenter, ByVal data As MrcSegmentData, ByVal iD As Integer) As Boolean
Dim segmentRectangle As LeadRect = data.ImageSegment
If iD = 0 Then
MessageBox.Show("Segment ID : " & iD.ToString())
MessageBox.Show("Left : " & segmentRectangle.Left.ToString() & Constants.vbLf & "Top : " & segmentRectangle.Top.ToString() & Constants.vbLf & "Right : " _
& segmentRectangle.Right.ToString() & Constants.vbLf & "Bottom : " & segmentRectangle.Bottom.ToString())
End If
Return True
End Function
<TestMethod()> _
Public Sub MrcSegmenterExample()
' Load an image
Dim codecs As RasterCodecs = New RasterCodecs()
codecs.ThrowExceptionsOnInvalidImages = True
Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "PDFSegmentation.pdf"))
Dim segmentImageOptions As MrcSegmentImageOptions = MrcSegmentImageOptions.Empty
segmentImageOptions.CleanSize = 5
segmentImageOptions.SegmentQuality = 50
segmentImageOptions.ColorThreshold = 25
segmentImageOptions.BackgroundThreshold = 10
segmentImageOptions.CombineThreshold = 75
segmentImageOptions.Flags = MrcSegmentImageFlags.FavorOneBit Or MrcSegmentImageFlags.SegmentWithBackground
Dim segmenter As MrcSegmenter = New MrcSegmenter(image, RasterColor.FromKnownColor(RasterKnownColor.White), RasterColor.FromKnownColor(RasterKnownColor.Black))
segmenter.SegmentImage(image, segmentImageOptions)
Dim callBack As MrcEnumerateSegmentsInfo = New MrcEnumerateSegmentsInfo(AddressOf MrcEnumerateSegmentInfoCallback)
segmenter.EnumerateSegments(callBack)
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Mrc;
private bool MrcEnumerateSegmentInfoCallback(MrcSegmenter segmentHandle, MrcSegmentData data, int iD)
{
if (iD == 0)
{
MessageBox.Show("Segment ID : " + iD.ToString());
MessageBox.Show("Left : " + data.ImageSegment.Left.ToString() +
"\nTop : " + data.ImageSegment.Top.ToString() +
"\nRight : " + data.ImageSegment.Right.ToString() +
"\nBottom : " + data.ImageSegment.Bottom.ToString());
}
return true;
}
public void MrcSegmenterExample()
{
// Load an image
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "PDFSegmentation.pdf"));
MrcSegmentImageOptions segmentImageOptions = MrcSegmentImageOptions.Empty;
segmentImageOptions.CleanSize = 5;
segmentImageOptions.SegmentQuality = 50;
segmentImageOptions.ColorThreshold = 25;
segmentImageOptions.BackgroundThreshold = 10;
segmentImageOptions.CombineThreshold = 75;
segmentImageOptions.Flags = MrcSegmentImageFlags.FavorOneBit | MrcSegmentImageFlags.SegmentWithBackground;
MrcSegmenter segmenter = new MrcSegmenter(image, RasterColor.FromKnownColor(RasterKnownColor.White), RasterColor.FromKnownColor(RasterKnownColor.Black));
segmenter.SegmentImage(image, segmentImageOptions);
MrcEnumerateSegmentsInfo callBack = new MrcEnumerateSegmentsInfo(MrcEnumerateSegmentInfoCallback);
segmenter.EnumerateSegments(callBack);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}