public LineRemoveCommand(
LineRemoveCommandFlags flags,
int minimumLineLength,
int maximumLineWidth,
int wall,
int maximumWallPercent,
int gapLength,
int variance,
LineRemoveCommandType type
)
- (instancetype)initWithFlags:(LTLineRemoveCommandFlags)flags minimumLineLength:(NSInteger)minimumLineLength maximumLineWidth:(NSInteger)maximumLineWidth wall:(NSInteger)wall maximumWallPercent:(NSInteger)maximumWallPercent gapLength:(NSInteger)gapLength variance:(NSInteger)variance type:(LTLineRemoveCommandType)type NS_DESIGNATED_INITIALIZER;
public LineRemoveCommand(
int flags,
int minimumLineLength,
int maximumLineWidth,
int wall,
int maximumWallPercent,
int gapLength,
int variance,
LineRemoveCommandType type
)
public:
LineRemoveCommand(
LineRemoveCommandFlags flags,
int minimumLineLength,
int maximumLineWidth,
int wall,
int maximumWallPercent,
int gapLength,
int variance,
LineRemoveCommandType type
)
__init__(self,flags,minimumLineLength,maximumLineWidth,wall,maximumWallPercent,gapLength,variance,type) # Overloaded constructor
flags
Flags that determine the behavior of the line removal process.
minimumLineLength
Minimum length of a line considered for removal. Lines less than this length are not removed. If the LineRemoveCommandFlags.UseDpi flag is set, units are in thousandths of an inch, otherwise units are in pixels.
maximumLineWidth
Maximum average width of a line that is considered for removal. Lines that are greater in average width are not removed. If the LineRemoveCommandFlags.UseDpi flag is set, units are in thousandths of an inch, otherwise units are in pixels.
wall
Height of a wall. Walls are slices of a line that are too wide to be considered part of the line. Examples of walls include a character that a line passes through or a perpendicular line. If the image contains lines that pass through characters, set Wall to be equal to or a little larger than MaximumLineWidth. If the LineRemoveCommandFlags.UseDpi flag is set, units are in thousandths of an inch, otherwise units are in pixels.
maximumWallPercent
The maximum number of wall slices (expressed as a percent of the total length of the line) that are allowed. A line consists of wall slices and non-wall slices (see description of Wall). This parameter specifies that maximum number of wall slices (expressed as a percent of the total length of the line) that are allowed. Lines that have a wall percent that is larger than maximumWallPercent will not be removed. For example, consider the line below that is 10 pixels in length, and 1 pixel in height in some places, and five pixels in height in other places.
Setting minimumLineLength to 10 pixels and wall to four pixels will identify the line below as a candidate for removal. Note that the wall percent for this line is 60 percent (because six of ten line slices are walls). If maximumWallPercent is 80 then the line will be removed (actually, the pixels marked as red will be removed). If maximumWallPercent is 30, then the line will not be removed.
gapLength
Maximum length of a break or a hole in a line. This can be used to remove dotted lines, dashed lines, or lines that have breaks due to scanning. If the LineRemoveCommandFlags.UseDpi flag is set, units are in thousandths of an inch, otherwise units are in pixels. This parameter is valid only if the LineRemoveCommandFlags.UseDpi flag is set.
variance
Amount of width change that is tolerated between adjacent line slices. If the LineRemoveCommandFlags.UseDpi flag is set, units are in thousandths of an inch, otherwise units are in pixels. This parameter is valid only if the LineRemoveCommandFlags.UseVariance flag is set. For example, the following horizontal line is 30 pixels in length (X represents a pixel)
If variance is 2 pixels (i.e. tolerate width changes of 2 pixels or less), the first 10 columns and the last 10 columns of the line will be removed. The middle 10 columns will be unchanged. This helps preserve characters that intersect a line that is being removed.
type
Flag that indicates which lines to remove.
Run the LineRemoveCommand on an image.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;
public void LineRemoveConstructorExample()
{
// Load an image
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif"));
// Prepare the command
LineRemoveCommand command = new LineRemoveCommand(LineRemoveCommandFlags.UseVariance | LineRemoveCommandFlags.SingleRegion, 200, 5, 7, 10, 2, 2, LineRemoveCommandType.Horizontal);
command.LineRemove += new EventHandler<LineRemoveCommandEventArgs>(LineRemoveEvent_S2);
command.Run(image);
}
private void LineRemoveEvent_S2(object sender, LineRemoveCommandEventArgs e)
{
MessageBox.Show("Row Col " + "( " + e.StartRow.ToString() + ", " + e.StartColumn + " )" +
"\n Length " + e.Length.ToString());
e.Status = RemoveStatus.Remove;
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.