Finds and modifies areas of inverted text in a 1-bit black and white image.
public class InvertedTextCommand : RasterCommand Public Class InvertedTextCommandInherits Leadtools.Imageprocessing.Leadtools.ImageProcessing.RasterCommandImplements Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand
public sealed class InvertedTextCommand : Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand @interface LTInvertedTextCommand : LTRasterCommand public class InvertedTextCommand extends RasterCommand function Leadtools.ImageProcessing.Core.InvertedTextCommand() public ref class InvertedTextCommand : public Leadtools.Imageprocessing.Leadtools.ImageProcessing.RasterCommand, Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand This command is available in the Document/Medical Toolkits.
This command finds and modifies areas of inverted text that are common in scanned text documents. Below is an example of inverted text:
Modifying the area of inverted text yields the following:
The behavior of this command can be modified by using an Event Handler that handles the InvertedTextCommandEventArgs.
For more information, refer to Cleaning Up 1-Bit Images. In Silverlight versions of LEADTOOLS, this image processing command will fail if the image data for the RasterImage object is stored internally using a Silverlight WriteableBitmap object. For more information, refer to Image Processing Command Limitations in Silverlight.
Runs the InvertedTextCommand on an image.
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageProcessing.Core;public void InvertedTextCommandExample(){// Load an imageRasterCodecs codecs = new RasterCodecs();codecs.ThrowExceptionsOnInvalidImages = true;RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif"));// Prepare the commandInvertedTextCommand command = new InvertedTextCommand();command.InvertedText += new EventHandler<InvertedTextCommandEventArgs>(InvertedTextEvent_S1);command.Flags = InvertedTextCommandFlags.UseDpi;command.MaximumBlackPercent = 95;command.MinimumBlackPercent = 70;command.MinimumInvertHeight = 500;command.MinimumInvertWidth = 5000;command.Run(image);}private void InvertedTextEvent_S1(object sender, InvertedTextCommandEventArgs e){MessageBox.Show("Size " + "( " + e.BoundingRectangle.Left + ", " + e.BoundingRectangle.Top + ") - " + "( " + e.BoundingRectangle.Right + ", " + e.BoundingRectangle.Bottom + ")" +"\n Black Count " + e.BlackCount.ToString() +"\n White Count " + e.WhiteCount.ToString());e.Status = RemoveStatus.Remove;}static class LEAD_VARS{public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessing.CoreLeadtools.Examples.Support.SetLicense()Public WithEvents invertedTextCommand_S1 As InvertedTextCommandPublic Sub InvertedTextCommandExample()Dim codecs As New RasterCodecs()codecs.ThrowExceptionsOnInvalidImages = TrueDim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif"))' Prepare the commandinvertedTextCommand_S1 = New InvertedTextCommandinvertedTextCommand_S1.Flags = InvertedTextCommandFlags.UseDpiinvertedTextCommand_S1.MaximumBlackPercent = 95invertedTextCommand_S1.MinimumBlackPercent = 70invertedTextCommand_S1.MinimumInvertHeight = 500invertedTextCommand_S1.MinimumInvertWidth = 5000invertedTextCommand_S1.Run(leadImage)End SubPrivate Sub InvertedTextCommand_InvertedText_S1(ByVal sender As Object, ByVal e As InvertedTextCommandEventArgs) Handles invertedTextCommand_S1.InvertedTextMessageBox.Show("Size " + "( " + e.BoundingRectangle.Left.ToString() + ", " + e.BoundingRectangle.Top.ToString() + ") - " + "( " + e.BoundingRectangle.Right.ToString() + ", " + e.BoundingRectangle.Bottom.ToString() + ")" +Chr(13) + " Black Count " + e.BlackCount.ToString() +Chr(13) + " White Count " + e.WhiteCount.ToString())e.Status = RemoveStatus.RemoveEnd SubPublic NotInheritable Class LEAD_VARSPublic Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"End Class
using Leadtools;using Leadtools.Examples;using Leadtools.Codecs;using Leadtools.ImageProcessing.Core;public void InvertedTextCommandExample(RasterImage image, Stream outStream){// Prepare the commandInvertedTextCommand command = new InvertedTextCommand();command.InvertedText += new EventHandler<InvertedTextCommandEventArgs>(InvertedTextEvent_S1);command.Flags = InvertedTextCommandFlags.UseDpi;command.MaximumBlackPercent = 95;command.MinimumBlackPercent = 70;command.MinimumInvertHeight = 500;command.MinimumInvertWidth = 5000;command.Run(image);// Save result imageRasterCodecs codecs = new RasterCodecs();codecs.Save(image, outStream, RasterImageFormat.CcittGroup4, 1);image.Dispose();}private void InvertedTextEvent_S1(object sender, InvertedTextCommandEventArgs e){Debug.WriteLine("Size " + "( " + e.BoundingRectangle.Left + ", " + e.BoundingRectangle.Top + ") - " + "( " + e.BoundingRectangle.Right + ", " + e.BoundingRectangle.Bottom + ")" +"\n Black Count " + e.BlackCount.ToString() +"\n White Count " + e.WhiteCount.ToString());e.Status = RemoveStatus.Remove;}
Imports LeadtoolsImports Leadtools.CodecsImports Leadtools.ImageProcessing.CorePublic Sub InvertedTextCommandExample(ByVal image As RasterImage, ByVal outStream As Stream)' Prepare the commandDim command As InvertedTextCommand = New InvertedTextCommand()AddHandler command.InvertedText, AddressOf InvertedTextEvent_S1command.Flags = InvertedTextCommandFlags.UseDpicommand.MaximumBlackPercent = 95command.MinimumBlackPercent = 70command.MinimumInvertHeight = 500command.MinimumInvertWidth = 5000command.Run(image)' Save result imageDim codecs As RasterCodecs = New RasterCodecs()codecs.Save(image, outStream, RasterImageFormat.CcittGroup4, 1)image.Dispose()End SubPrivate Sub InvertedTextEvent_S1(ByVal sender As Object, ByVal e As InvertedTextCommandEventArgs)Debug.WriteLine("Size " & "( " & e.BoundingRectangle.Left & ", " & e.BoundingRectangle.Top & ") - " & "( " & e.BoundingRectangle.Right & ", " _& e.BoundingRectangle.Bottom & ")" & Constants.vbLf & " Black Count " & e.BlackCount.ToString() & Constants.vbLf &" White Count " & e.WhiteCount.ToString())e.Status = RemoveStatus.RemoveEnd Sub
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
