←Select platform

InvertedTextCommand Class

Summary
Finds and modifies areas of inverted text in a 1-bit black and white image.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public class InvertedTextCommand : RasterCommand 
@interface LTInvertedTextCommand : LTRasterCommand 
public class InvertedTextCommand 
    extends RasterCommand 
public ref class InvertedTextCommand : public RasterCommand   
class InvertedTextCommand(RasterCommand): 
Remarks

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:

    invert1.jpg
    Modifying the area of inverted text yields the following:
    invert2.jpg
  • The behavior of this command can be modified by using an Event Handler that handles the InvertedTextCommandEventArgs.

  • This command works only on 1-bit black and white images.
  • If a region is selected, only the selected region will be changed by this method. If no region is selected, the whole image will be processed.
  • This command does not support signed data images.
  • This command does not support 32-bit grayscale images.

For more information, refer to Cleaning Up 1-Bit Images.

Inverted Text Function - Before

Inverted Text Function - Before

Inverted Text Function - After

Inverted Text Function - After

View additional platform support for this Inverted Text function.

Example

Runs the InvertedTextCommand on an image.

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
 
public void InvertedTextCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif")); 
 
   // Prepare the command 
   InvertedTextCommand 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:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.core.*; 
 
 
public void invertedTextCommandExample() { 
    final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
 
    // Load an image 
    RasterCodecs codecs = new RasterCodecs(); 
    codecs.setThrowExceptionsOnInvalidImages(true); 
 
    RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "Clean.tif")); 
 
    // Prepare the command 
    InvertedTextCommand command = new InvertedTextCommand(); 
    command.addInvertedTextCommandListener(invertedTextEvent_S1); 
    command.setFlags(InvertedTextCommandFlags.USE_DPI.getValue()); 
    command.setMaximumBlackPercent(95); 
    command.setMinimumBlackPercent(70); 
    command.setMinimumInvertHeight(500); 
    command.setMinimumInvertWidth(5000); 
 
    command.run(image); 
    codecs.save(image, combine(LEAD_VARS_IMAGES_DIR, "Result.jpg"), RasterImageFormat.JPEG, 24); 
 
    assertTrue(new File(combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")).exists()); 
    System.out.println("Command run and image saved to " + combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")); 
} 
 
InvertedTextCommandListener invertedTextEvent_S1 = new InvertedTextCommandListener() { 
    @Override 
    public void onInvertedTextEvent(InvertedTextCommandEvent e) { 
        System.out.println( 
                "Size ( " + e.getBoundingRectangle().getLeft() + ", " + e.getBoundingRectangle().getTop() + ") - " 
                        + "( " 
                        + e.getBoundingRectangle().getRight() + ", " + e.getBoundingRectangle().getBottom() + ")" + 
                        "\n Black Count " + e.getBlackCount() + 
                        "\n White Count " + e.getWhiteCount()); 
        e.setStatus(RemoveStatus.REMOVE); 
    } 
}; 
Requirements

Target Platforms

Help Version 23.0.2024.3.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Core Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.