LEADTOOLS画像処理(Leadtools.ImageProcessing.Coreアセンブリ)

フレームを表示

LineRemoveCommandコンストラクタ(LineRemoveCommandFlags、Int32、Int32、Int32、Int32、Int32、Int32、LineRemoveCommandType)








行除去プロセスの動作を決定するフラグ。
除去のためにみなされる行の最小長。このlengthより少ない行は、削除されません。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。
Maximumは、除去のためにみなされる行の幅を平均化します。平均幅でよりすばらしい行は、削除されません。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。
ウォールの高さ。ウォールは、ラインの一部とみなすには広すぎる線のスライスです。ウォールの例は、行が渡す文字または垂直な行を含みます。文字を通過する線が画像に含まれる場合、WallをMaximumLineWidthと同じ値か少し大きめに設定します。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。
許可するウォールスライス(行の全長の1パーセントとして表される)の最大数。行は、ウォールスライスと非ウォールスライス(ウォールの説明を参照します)から構成されます。このパラメーターは、許可するウォールスライス(行の全長の1パーセントとして表される)のその最大数を指定します。maximumWallPercentであるより、大きい1ウォールパーセントを持っている行は、削除されません。たとえば、長さが10ピクセル、一部の高さが1ピクセル、別の場所の高さが5ピクセルである以下のラインを考えてみましょう。


minimumLineLengthを10ピクセルに、ウォールを4ピクセルに設定すると、以下のラインは削除候補として認識されます。この線のウォールは60%である点にご注意ください(10枚のラインスライスのうち6枚がウォール)。maximumWallPercentが80であるならば、行は削除されます(実際に、赤としてマークされるピクセルは、削除されます)。maximumWallPercentが30であるならば、行は削除されません。


1行のラインにおける裂け目または穴の最大長。これは、スキャニングのために裂け目ができたドット線、ダッシュ線または裂け目のあるラインを除去するために使用できます。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。LineRemoveCommandFlags.UseDpiフラグが設定される場合だけ、このパラメーターは有効です。
隣接した行スライスの間で許容される幅変更の量。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。LineRemoveCommandFlags.UseVarianceフラグが設定される場合だけ、このパラメーターは有効です。たとえば、以下の行は、長さ30ピクセル(Xはピクセルを表します)です


差異が2ピクセルである(許容される幅の変更が2ピクセル未満である)場合、その行の最初の10列と最後の10列が削除されます。中央は、10段不変でしょう。これは、削除されている行を交差する文字を保存するのを助けます。
どの行を削除するべきかについて示すフラグ。
明示的なパラメータで新しいLineRemoveCommandクラスオブジェクトを初期化します。
構文
'Declaration
 
Public Function New( _
   ByVal flags As LineRemoveCommandFlags, _
   ByVal minimumLineLength As Integer, _
   ByVal maximumLineWidth As Integer, _
   ByVal wall As Integer, _
   ByVal maximumWallPercent As Integer, _
   ByVal gapLength As Integer, _
   ByVal variance As Integer, _
   ByVal type As LineRemoveCommandType _
)
'Usage
 
Dim flags As LineRemoveCommandFlags
Dim minimumLineLength As Integer
Dim maximumLineWidth As Integer
Dim wall As Integer
Dim maximumWallPercent As Integer
Dim gapLength As Integer
Dim variance As Integer
Dim type As LineRemoveCommandType
 
Dim instance As New LineRemoveCommand(flags, minimumLineLength, maximumLineWidth, wall, maximumWallPercent, gapLength, variance, 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
             
public LineRemoveCommand(
   int flags, 
   int minimumLineLength, 
   int maximumLineWidth, 
   int wall, 
   int maximumWallPercent, 
   int gapLength, 
   int variance, 
   LineRemoveCommandType type
)
             

パラメーター

フラグ
行除去プロセスの動作を決定するフラグ。
minimumLineLengthな
除去のためにみなされる行の最小長。このlengthより少ない行は、削除されません。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。
maximumLineWidthな
Maximumは、除去のためにみなされる行の幅を平均化します。平均幅でよりすばらしい行は、削除されません。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。
ウォール
ウォールの高さ。ウォールは、ラインの一部とみなすには広すぎる線のスライスです。ウォールの例は、行が渡す文字または垂直な行を含みます。文字を通過する線が画像に含まれる場合、WallをMaximumLineWidthと同じ値か少し大きめに設定します。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。
maximumWallPercent
許可するウォールスライス(行の全長の1パーセントとして表される)の最大数。行は、ウォールスライスと非ウォールスライス(ウォールの説明を参照します)から構成されます。このパラメーターは、許可するウォールスライス(行の全長の1パーセントとして表される)のその最大数を指定します。maximumWallPercentであるより、大きい1ウォールパーセントを持っている行は、削除されません。たとえば、長さが10ピクセル、一部の高さが1ピクセル、別の場所の高さが5ピクセルである以下のラインを考えてみましょう。


minimumLineLengthを10ピクセルに、ウォールを4ピクセルに設定すると、以下のラインは削除候補として認識されます。この線のウォールは60%である点にご注意ください(10枚のラインスライスのうち6枚がウォール)。maximumWallPercentが80であるならば、行は削除されます(実際に、赤としてマークされるピクセルは、削除されます)。maximumWallPercentが30であるならば、行は削除されません。


ギャップまで届く
1行のラインにおける裂け目または穴の最大長。これは、スキャニングのために裂け目ができたドット線、ダッシュ線または裂け目のあるラインを除去するために使用できます。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。LineRemoveCommandFlags.UseDpiフラグが設定される場合だけ、このパラメーターは有効です。
相違
隣接した行スライスの間で許容される幅変更の量。LineRemoveCommandFlags.UseDpiフラグが設定される場合、単位は1/10,00インチです。それ以外はピクセルです。LineRemoveCommandFlags.UseVarianceフラグが設定される場合だけ、このパラメーターは有効です。たとえば、以下の行は、長さ30ピクセル(Xはピクセルを表します)です


差異が2ピクセルである(許容される幅の変更が2ピクセル未満である)場合、その行の最初の10列と最後の10列が削除されます。中央は、10段不変でしょう。これは、削除されている行を交差する文字を保存するのを助けます。
どの行を削除するべきかについて示すフラグ。
サンプル

imageの上でLineRemoveCommandを実行します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing.Core

Public WithEvents lineRemoveCommand_S2 As LineRemoveCommand
   
Public Sub LineRemoveConstructorExample()
   Dim codecs As New RasterCodecs()
   codecs.ThrowExceptionsOnInvalidImages = True
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Clean.tif"))

   ' Prepare the command
   lineRemoveCommand_S2 = New LineRemoveCommand(LineRemoveCommandFlags.UseVariance Or LineRemoveCommandFlags.SingleRegion, 200, 5, 7, 10, 2, 2, LineRemoveCommandType.Horizontal)
   lineRemoveCommand_S2.Run(leadImage)

End Sub

Private Sub LineRemoveCommand_LineRemove_S2(ByVal sender As Object, ByVal e As LineRemoveCommandEventArgs) Handles lineRemoveCommand_S2.LineRemove
   MessageBox.Show("Row Col " + "( " + e.StartRow.ToString() + ", " + e.StartColumn.ToString() + " )" + _
      Chr(13) + " Length " + e.Length.ToString())
   e.Status = RemoveStatus.Remove
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.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:\Users\Public\Documents\LEADTOOLS Images";
}
function LineRemoveConstructorExample()
{
   var codecs = new Leadtools.Codecs.RasterCodecs();
   codecs.throwExceptionsOnInvalidImages = true;

   // Load the image
   var srcFileName = "Assets\\clean.tif";
   return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
      return codecs.loadAsync(Leadtools.LeadStreamFactory.create(loadFile));
   }).then(function (image) {
      // Prepare the command
      with (Leadtools.ImageProcessing.Core) {
         var command = new LineRemoveCommand( LineRemoveCommandFlags.useVariance | LineRemoveCommandFlags.singleRegion, 200, 5, 7, 10, 2, 2, LineRemoveCommandType.horizontal);
         command.addEventListener("lineremove", LineRemoveEvent_S2);
         command.run(image);
      }
   });
}

function LineRemoveEvent_S2(e)
{
   console.error("Row Col " + "( " + e.startRow.toString() + ", " + e.startColumn + " )" +
      "\n Length " + e.length.toString());
   e.status = Leadtools.ImageProcessing.Core.RemoveStatus.remove;
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;

      
public async Task LineRemoveConstructorExample()
{
   // Load an image
   RasterCodecs codecs = new RasterCodecs();
   codecs.ThrowExceptionsOnInvalidImages = true;
   // Load the image
   string srcFileName = @"Assets\Clean.tif";
   StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName);
   RasterImage image = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile));

   // 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)
{
   Debug.WriteLine("Row Col "   + "( " + e.StartRow.ToString() + ", " + e.StartColumn + " )" +
      "\n Length " + e.Length.ToString());
   e.Status= RemoveStatus.Remove;
}
using Leadtools;
using Leadtools.Examples;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;

public void LineRemoveConstructorExample(RasterImage image, Stream outStream)
{
   // 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);
   // Save result image
   RasterCodecs codecs = new RasterCodecs();
   codecs.Save(image, outStream, RasterImageFormat.CcittGroup4, 1);
   image.Dispose();
}

private void LineRemoveEvent_S2(object sender, LineRemoveCommandEventArgs e)
{
   Debug.WriteLine("Row Col "   + "( " + e.StartRow.ToString() + ", " + e.StartColumn + " )" +
      "\n Length " + e.Length.ToString());
   e.Status= RemoveStatus.Remove;
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing.Core

Public Sub LineRemoveConstructorExample(ByVal image As RasterImage, ByVal outStream As Stream)
   ' Prepare the command
   Dim command As LineRemoveCommand = New LineRemoveCommand(LineRemoveCommandFlags.UseVariance Or _
                                                            LineRemoveCommandFlags.SingleRegion, 200, 5, 7, 10, 2, 2, LineRemoveCommandType.Horizontal)
   AddHandler command.LineRemove, AddressOf LineRemoveEvent_S2
   command.Run(image)
   ' Save result image
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.Save(image, outStream, RasterImageFormat.CcittGroup4, 1)
   image.Dispose()
End Sub

Private Sub LineRemoveEvent_S2(ByVal sender As Object, ByVal e As LineRemoveCommandEventArgs)
   Debug.WriteLine("Row Col " & "( " & e.StartRow.ToString() & ", " & e.StartColumn & " )" & Constants.vbLf & " Length " & e.Length.ToString())
   e.Status= RemoveStatus.Remove
End Sub
必要条件

ターゲットプラットホーム

参照

参照

LineRemoveCommandクラス
LineRemoveCommandメンバ
オーバーロードリスト