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

フレームを表示

InvertedPageCommandクラス








メンバ 
倒立像をチェックし自動補正します。
オブジェクトモデル
構文
'Declaration
 
Public Class InvertedPageCommand 
   Inherits Leadtools.ImageProcessing.RasterCommand
   Implements Leadtools.ImageProcessing.IRasterCommand 
'Usage
 
Dim instance As InvertedPageCommand
public sealed class InvertedPageCommand : Leadtools.ImageProcessing.IRasterCommand  
@interface LTInvertedPageCommand : LTRasterCommand
public class InvertedPageCommand extends RasterCommand
function Leadtools.ImageProcessing.Core.InvertedPageCommand()
解説

反転RasterImageは、ローコントラスト背景(たとえば黒色背景の白いテキスト)の上に高い対比色でテキストまたは他のオブジェクトを持っているimageです。このコマンドは、imageが反転されるかどうか決定することができて、自動的にそれを修正することができます。

このコマンドは、image全体を検出することができるだけです。imageにはっきりした反転領域またはリージョンを検索して、修正するために、InvertedTextCommandを使います。

倒立像の一般のソースは、若干のアプリケーションによって非標準パレットで保存される白黒のイメージです。

このコマンドは、符合付きデータイメージをサポートしません。

詳細については、「1ビット画像のクリーンアップ」を参照してください。

LEADTOOLSのSilverlightバージョンにおいて、RasterImageオブジェクトのための画像データがSilverlight WriteableBitmapを用いて内部的に保存されるならば、この画像処理コマンドは失敗しますオブジェクト。詳細については、「Silverlightの画像処理コマンド限界」を参照してください。

サンプル

このサンプルは確認するInvertedPageCommandクラスを使用する方法を示します、そして、オートコレクト機能はイメージを反転しました。

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

   
Public Sub InvertedPageCommandExample()
   Dim codecs As New RasterCodecs()
   ' Get an image
   Dim tifFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "ocr1.tif")
   Dim invertedImageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "ocr1_Inverted.tif")
   Dim nonInvertedImageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "ocr1_NonInverted.tif")

   Dim image As RasterImage = codecs.Load(tifFileName)

   ' The images should be non-inverted at the beginning, check
   Dim invertedPage As New InvertedPageCommand(InvertedPageCommandFlags.NoProcess)
   invertedPage.Run(image)
   Console.WriteLine("Original image, inverted = {0}", invertedPage.IsInverted)

   ' Invert the image
   Dim invert As New InvertCommand()
   invert.Run(image)

   codecs.Save(image, invertedImageFileName, image.OriginalFormat, image.BitsPerPixel)

   ' Check again
   invertedPage.Run(image)
   Console.WriteLine("After running InvertCommand, inverted = {0}", invertedPage.IsInverted)

   ' Now run the command to un-invert the image
   invertedPage.Flags = InvertedPageCommandFlags.Process
   invertedPage.Run(image)

   ' Now check the image again
   invertedPage.Flags = InvertedPageCommandFlags.NoProcess
   invertedPage.Run(image)
   Console.WriteLine("After running InvertedPageCommand, inverted = {0}", invertedPage.IsInverted)
   codecs.Save(image, nonInvertedImageFileName, image.OriginalFormat, image.BitsPerPixel)

   image.Dispose()

   codecs.Dispose()
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;
using Leadtools.ImageProcessing.Color;

      
public void InvertedPageCommandExample()
{
   RasterCodecs codecs = new RasterCodecs();
   // Get an image
   string tifFileName = Path.Combine(LEAD_VARS.ImagesDir, "ocr1.tif");
   string invertedImageFileName = Path.Combine(LEAD_VARS.ImagesDir, "ocr1_Inverted.tif");
   string nonInvertedImageFileName = Path.Combine(LEAD_VARS.ImagesDir, "ocr1_NonInverted.tif");

   RasterImage image = codecs.Load(tifFileName);

   // The images should be non-inverted at the beginning, check
   InvertedPageCommand invertedPage = new InvertedPageCommand(InvertedPageCommandFlags.NoProcess);
   invertedPage.Run(image);
   Console.WriteLine("Original image, inverted = {0}", invertedPage.IsInverted);

   // Invert the image
   InvertCommand invert = new InvertCommand();
   invert.Run(image);

   codecs.Save(image, invertedImageFileName, image.OriginalFormat, image.BitsPerPixel);

   // Check again
   invertedPage.Run(image);
   Console.WriteLine("After running InvertCommand, inverted = {0}", invertedPage.IsInverted);

   // Now run the command to un-invert the image
   invertedPage.Flags = InvertedPageCommandFlags.Process;
   invertedPage.Run(image);

   // Now check the image again
   invertedPage.Flags = InvertedPageCommandFlags.NoProcess;
   invertedPage.Run(image);
   Console.WriteLine("After running InvertedPageCommand, inverted = {0}", invertedPage.IsInverted);
   codecs.Save(image, nonInvertedImageFileName, image.OriginalFormat, image.BitsPerPixel);

   image.Dispose();

   codecs.Dispose();
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
function InvertedPageCommandExample()
{
   var codecs = new Leadtools.Codecs.RasterCodecs();
   var invertedPage;
   var workingImage;

   // Load the image
   var srcFileName = "Assets\\ocr1.tif";
   return Tools.AppInstallFolder().getFileAsync(srcFileName).then(function (loadFile) {
      return codecs.loadAsync(Leadtools.LeadStreamFactory.create(loadFile));
   }).then(function (image) {
      with (Leadtools.ImageProcessing.Core)
      {
         // The images should be non-inverted at the beginning, check
         invertedPage = new InvertedPageCommand(InvertedPageCommandFlags.noProcess);
         invertedPage.run(image);
         console.error("Original image, inverted = {0}", invertedPage.isInverted);
      }

      // Invert the image
      var invert = new Leadtools.ImageProcessing.Color.InvertCommand();
      invert.run(image);

      workingImage = image;

      var destFileName = "ocr1_Inverted.tif";
      return Tools.AppLocalFolder().createFileAsync(destFileName)
   }).then(function (saveFile) {
      return codecs.saveAsync(workingImage, Leadtools.LeadStreamFactory.create(saveFile), workingImage.originalFormat, workingImage.bitsPerPixel)
   }).then(function () {

      // Check again
      invertedPage.run(workingImage);
      console.error("After running InvertCommand, inverted = {0}", invertedPage.isInverted);

      // Now run the command to un-invert the image
      with (Leadtools.ImageProcessing.Core)
      {
         invertedPage.flags = InvertedPageCommandFlags.process;
         invertedPage.run(workingImage);

         // Now check the image again
         invertedPage.flags = InvertedPageCommandFlags.noProcess;
         invertedPage.run(workingImage);
      }

      console.error("After running InvertedPageCommand, inverted = {0}", invertedPage.isInverted);
      destFileName = "ocr1_NonInverted.tif";
      return Tools.AppLocalFolder().createFileAsync(destFileName);
   }).then(function (saveFile) {
      return codecs.saveAsync(workingImage, Leadtools.LeadStreamFactory.create(saveFile), workingImage.originalFormat, workingImage.bitsPerPixel);
   });
}
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;
using Leadtools.ImageProcessing.Color;

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

   // The images should be non-inverted at the beginning, check
   InvertedPageCommand invertedPage = new InvertedPageCommand(InvertedPageCommandFlags.NoProcess);
   invertedPage.Run(image);
   Debug.WriteLine("Original image, inverted = {0}", invertedPage.IsInverted);

   // Invert the image
   InvertCommand invert = new InvertCommand();
   invert.Run(image);
   string destFileName = @"ocr1_Inverted.tif";
   StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
   await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), image.OriginalFormat, image.BitsPerPixel);

   // Check again
   invertedPage.Run(image);
   Debug.WriteLine("After running InvertCommand, inverted = {0}", invertedPage.IsInverted);

   // Now run the command to un-invert the image
   invertedPage.Flags = InvertedPageCommandFlags.Process;
   invertedPage.Run(image);

   // Now check the image again
   invertedPage.Flags = InvertedPageCommandFlags.NoProcess;
   invertedPage.Run(image);
   Debug.WriteLine("After running InvertedPageCommand, inverted = {0}", invertedPage.IsInverted);
   destFileName = @"ocr1_NonInverted.tif";
   saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName);
   await codecs.SaveAsync(image, LeadStreamFactory.Create(saveFile), image.OriginalFormat, image.BitsPerPixel);

   image.Dispose();

   codecs.Dispose();
}
using Leadtools;
using Leadtools.ImageProcessing;
using Leadtools.Examples;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;
using Leadtools.ImageProcessing.Color;

public void InvertedPageCommandExample(RasterImage image, Stream outStream1, Stream outStream2)
{
   // The images should be non-inverted at the beginning, check
   InvertedPageCommand invertedPage = new InvertedPageCommand(InvertedPageCommandFlags.NoProcess);
   invertedPage.Run(image);
   Debug.WriteLine("Original image, inverted = {0}", invertedPage.IsInverted);
   // Invert the image
   InvertCommand invert = new InvertCommand();
   invert.Run(image);

   RasterCodecs codecs = new RasterCodecs();
   // save image to "ocr1_Inverted.tif";
   codecs.Save(image, outStream1, image.OriginalFormat, image.BitsPerPixel);

   // Check again
   invertedPage.Run(image);
   Debug.WriteLine("After running InvertCommand, inverted = {0}", invertedPage.IsInverted);

   // Now run the command to un-invert the image
   invertedPage.Flags = InvertedPageCommandFlags.Process;
   invertedPage.Run(image);

   // Now check the image again
   invertedPage.Flags = InvertedPageCommandFlags.NoProcess;
   invertedPage.Run(image);
   Debug.WriteLine("After running InvertedPageCommand, inverted = {0}", invertedPage.IsInverted);

   // save result image to "ocr1_NonInverted.tif"
   codecs.Save(image, outStream2, RasterImageFormat.CcittGroup4, 1);

   image.Dispose();
}
Imports Leadtools
Imports Leadtools.ImageProcessing
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing.Core
Imports Leadtools.ImageProcessing.Color

Public Sub InvertedPageCommandExample(ByVal image As RasterImage, ByVal outStream1 As Stream, ByVal outStream2 As Stream)
   ' The images should be non-inverted at the beginning, check
   Dim invertedPage As InvertedPageCommand = New InvertedPageCommand(InvertedPageCommandFlags.NoProcess)
   invertedPage.Run(image)
   Debug.WriteLine("Original image, inverted = {0}", invertedPage.IsInverted)
   ' Invert the image
   Dim invert As InvertCommand = New InvertCommand()
   invert.Run(image)

   Dim codecs As RasterCodecs = New RasterCodecs()
   ' save image to "ocr1_Inverted.tif";
   codecs.Save(image, outStream1, image.OriginalFormat, image.BitsPerPixel)

   ' Check again
   invertedPage.Run(image)
   Debug.WriteLine("After running InvertCommand, inverted = {0}", invertedPage.IsInverted)

   ' Now run the command to un-invert the image
   invertedPage.Flags = InvertedPageCommandFlags.Process
   invertedPage.Run(image)

   ' Now check the image again
   invertedPage.Flags = InvertedPageCommandFlags.NoProcess
   invertedPage.Run(image)
   Debug.WriteLine("After running InvertedPageCommand, inverted = {0}", invertedPage.IsInverted)

   ' save result image to "ocr1_NonInverted.tif"
   codecs.Save(image, outStream2, RasterImageFormat.CcittGroup4, 1)

   image.Dispose()
End Sub
必要条件

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

参照

参照

InvertedPageCommandメンバ
Leadtools.ImageProcessing.Core名前空間
1ビット画像のクリーンアップ
SmoothCommandクラス
BorderRemoveCommandクラス
LineRemoveCommandクラス
InvertedTextCommandクラス
HighQualityRotateCommandクラス
DotRemoveCommandクラス
HolePunchRemoveCommandクラス
HighQualityRotateCommandクラス
MinimumCommandクラス
MaximumCommandクラス
Leadtools.ImageProcessing.Effects.RegionHolesRemovalCommand