←Select platform

RakeRemoveCommand Class

Summary
Removes isolated Data Rakes in 1-bit black and white images.
Syntax
C#
C++/CLI
Java
Python
public class RakeRemoveCommand : RasterCommand 
public class RakeRemoveCommand 
    extends RasterCommand 
public ref class RakeRemoveCommand : public RasterCommand   
class RakeRemoveCommand(RasterCommand): 
Remarks
  • Removes data entry rakes from scanned text documents. If the lines pass through text, the RakeRemoveCommand properties and Constructor parameters can be configured to remove or preserve the text. The behavior of this command can be further modified by using an Event Handler that handles the RakeRemoveCommandEventArgs.
  • 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 command. 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.

Rake Remove Function - Before

Rake Remove Function - Before

Rake Remove Function - After

Rake Remove Function - After

View additional platform support for this Rake Remove function.

Example

Runs the RakeRemoveCommand on an image.

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
 
 
public void RakeRemoveCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"Forms\Forms to be Recognized\OCR\FCC-107_OCR_Filled.tif")); 
 
   // Prepare the command 
   RakeRemoveCommand command = new RakeRemoveCommand(); 
   command.RakeRemove += new EventHandler<RakeRemoveCommandEventArgs>(RakeRemoveEvent_S1); 
   command.MinLength = 50; 
   command.MinWallHeight = 10; 
   command.MaxWidth = 3; 
   command.MaxWallPercent = 25; 
   command.MaxSideteethLength = 60; 
   command.MaxMidteethLength = 50; 
   command.Gaps = 1; 
   command.Variance = 1; 
   command.TeethSpacing = 5; 
   command.AutoFilter = false; 
 
   command.Run(image); 
 
} 
 
private void RakeRemoveEvent_S1(object sender, RakeRemoveCommandEventArgs e) 
{ 
   MessageBox.Show("Rake length is " + "( " + e.Length.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.RakeRemoveCommand; 
import leadtools.imageprocessing.core.RakeRemoveCommandEvent; 
import leadtools.imageprocessing.core.RakeRemoveCommandListener; 
import leadtools.imageprocessing.core.RemoveStatus; 
 
 
public void rakeRemoveCommandExample() { 
   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, "Forms\\Forms to be Recognized\\OCR\\FCC-107_OCR_Filled.tif")); 
 
   // Prepare the command 
   RakeRemoveCommand command = new RakeRemoveCommand(); 
   command.addRakeRemoveListener(RakeRemoveEvent_S1); 
   command.setMinLength(50); 
   command.setMinWallHeight(10); 
   command.setMaxWidth(3); 
   command.setMaxWallPercent(25); 
   command.setMaxSideteethLength(60); 
   command.setMaxMidteethLength(50); 
   command.setGaps(1); 
   command.setVariance(1); 
   command.setTeethSpacing(5); 
   command.setAutoFilter(false); 
 
   int change = command.run(image); 
 
   assertTrue(change != RasterImageChangedFlags.NONE); 
} 
 
RakeRemoveCommandListener RakeRemoveEvent_S1 = new RakeRemoveCommandListener() { 
   @Override 
   public void onRakeRemoveEvent(RakeRemoveCommandEvent e) { 
      System.out.println("Rake length is " + "(" + e.getLength() + ")"); 
      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.