Class ScanOptions

java.lang.Object
com.nefrock.edgeocr.ScanOptions

public class ScanOptions extends Object
スキャンオプションを表すクラスです。 スキャンモードと切り取り範囲を指定できます。 ScanOptions.ScanMode 列挙型を利用してスキャンのモードを指定します。
スキャンモードは3通りあります。
  1. ScanOptions.ScanMode.DEFAULT
    画像内の文字を検出・認識します。
    このモードでは、文字の位置情報、内容及びOCR結果の確からしさに関する情報を返します。
  2. ScanOptions.ScanMode.RECOGNITION_ONLY
    画像内の文字に対する認識のみを行います。
    cropRectを指定してスキャン範囲を限定して利用することを推奨しています。
  3. ScanOptions.ScanMode.ONE_SHOT
    同期的に画像内の文字を検出・認識します。
    リアルタイムなカメラ画像の解析ではなく、静止画像の解析に使用してください。
回転の角度を指定することができます。指定しない場合は、以下のように動作します。
EdgeVisionAPI.scan(ImageProxy, ScanOptions) メソッドの場合は、ImageProxyの回転角度を使用します。
EdgeVisionAPI.scan(Bitmap, ScanOptions) メソッドの場合は、回転しません。
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    スキャンモードを表す列挙型です。
  • Constructor Summary

    Constructors
    Constructor
    Description
    スキャンモードを指定してスキャンオプションを作成します。 スキャン範囲は画像の中心部分からモデルのアスペクト比を保ったまま、 切り出せる最大のサイズとなるように設定されます。
  • Method Summary

    Modifier and Type
    Method
    Description
    設定したバーコードの種類を返します。
    設定したスキャン範囲を返します。
    boolean
    画像を水平方向に反転するかどうかを返します。
    boolean
    画像を垂直方向に反転するかどうかを返します。
    設定したクロップ後の追加回転を返します。設定していない場合は、nullを返します。
    設定した回転角度を返します。設定していない場合は、nullを返します。
    設定したスキャンモードを返します。
    void
    バーコードの種類を設定します。
    void
    スキャン範囲を設定します。
    void
    setFlipHorizontal(boolean flipHorizontal)
    画像を水平方向に反転するかどうかを設定します。
    void
    setFlipVertical(boolean flipVertical)
    画像を垂直方向に反転するかどうかを設定します。
    void
    setPostCropRotation(Rotation postCropRotation)
    クロップ後にモデル入力へ適用する追加回転を設定します。
    void
    回転角度を設定します。
    void
    スキャンモードを設定します。

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ScanOptions

      public ScanOptions()
      スキャンモードを指定してスキャンオプションを作成します。 スキャン範囲は画像の中心部分からモデルのアスペクト比を保ったまま、 切り出せる最大のサイズとなるように設定されます。
  • Method Details

    • getScanMode

      public ScanOptions.ScanMode getScanMode()
      設定したスキャンモードを返します。
      Returns:
      スキャンモード
    • setScanMode

      public void setScanMode(@NonNull ScanOptions.ScanMode scanMode)
      スキャンモードを設定します。
      Parameters:
      scanMode - スキャンモード
    • getCropRect

      public CropRect getCropRect()
      設定したスキャン範囲を返します。
      Returns:
      スキャン範囲
    • setCropRect

      public void setCropRect(@NonNull CropRect cropRect)
      スキャン範囲を設定します。
      Parameters:
      cropRect - スキャン範囲
    • getRotation

      public Rotation getRotation()
      設定した回転角度を返します。設定していない場合は、nullを返します。
      Returns:
      回転角度
    • setRotation

      public void setRotation(@NonNull Rotation rotation)
      回転角度を設定します。
      Parameters:
      rotation - 回転角度
    • getPostCropRotation

      @Nullable public Rotation getPostCropRotation()
      設定したクロップ後の追加回転を返します。設定していない場合は、nullを返します。
      Returns:
      クロップ後の追加回転
    • setPostCropRotation

      public void setPostCropRotation(@Nullable Rotation postCropRotation)
      クロップ後にモデル入力へ適用する追加回転を設定します。

      フレーム内で正立していないドキュメントを読み取るための指定です。 ModelSettingsOrientationSettingsでも同じ設定ができますが、 ここで指定した場合はそちらより優先されます。自動向き判定を有効にしている 場合も、ここで指定するとその判定は行われません。

      未設定(null)とRotate0は別物です。未設定は「ModelSettingsの 指定に従う」で、Rotate0は「回転せず、向き判定モデルも実行しない」という指定です。 フレーム毎に自動判定を止めたい場合はRotate0を渡してください。

      nullを渡すと未設定に戻ります。Swift版はsetterを持たないため、 そちらではScanOptionsを作り直してください。

      指定するのはドキュメントの向きそのものではなく、それを正立させるために適用する 回転です。時計回りで、画面上で時計回りに90度回転しているならRotate270を渡します。

      カメラ回転(setRotation(com.nefrock.edgeocr.Rotation))の適用は後段回転の有無に影響されません。

      45度刻みの値(Rotate45 / Rotate135 / Rotate225 / Rotate315)も指定できます。ただし90度の倍数とは性質が違います。 90度の倍数は画素の並べ替えなので無損失ですが、45度刻みは補間を伴うためぼけが入り、 モデルに渡る領域も内側に収まる部分だけになります(1920x1080で正方モデルなら0.71倍)。 検出枠も傾いた四角形の外接矩形になるため、画素換算で最大√2倍に膨らみます。

      45度刻みは後段回転専用です。setRotation(com.nefrock.edgeocr.Rotation)に渡すと例外になります。

      検出結果の座標は回転を打ち消した表示空間で返るため、 オーバーレイ描画のコードを変更する必要はありません。

      Parameters:
      postCropRotation - 追加回転
    • getBarcodeFormats

      public List<BarcodeFormat> getBarcodeFormats()
      設定したバーコードの種類を返します。
      Returns:
      バーコードの種類
    • setBarcodeFormats

      public void setBarcodeFormats(@NonNull List<BarcodeFormat> barcodeFormats)
      バーコードの種類を設定します。
      Parameters:
      barcodeFormats - バーコードの種類
    • getFlipHorizontal

      public boolean getFlipHorizontal()
      画像を水平方向に反転するかどうかを返します。
      Returns:
      画像を水平方向に反転するかどうか
    • setFlipHorizontal

      public void setFlipHorizontal(boolean flipHorizontal)
      画像を水平方向に反転するかどうかを設定します。
      Parameters:
      flipHorizontal - 画像を水平方向に反転するかどうか
    • getFlipVertical

      public boolean getFlipVertical()
      画像を垂直方向に反転するかどうかを返します。
      Returns:
      画像を垂直方向に反転するかどうか
    • setFlipVertical

      public void setFlipVertical(boolean flipVertical)
      画像を垂直方向に反転するかどうかを設定します。
      Parameters:
      flipVertical - 画像を垂直方向に反転するかどうか