Package org.opencv.dnn

## Class Model

- java.lang.Object
- - org.opencv.dnn.Net
  - - org.opencv.dnn.Model

- Direct Known Subclasses:
    `ClassificationModel`, `DetectionModel`, `KeypointsModel`, `SegmentationModel`

      public class Model
      extends Net

  This class is presented high-level API for neural networks. Model allows to set params for preprocessing input image. Model creates net from file with trained weights and config, sets preprocessing input and runs forward pass.

- - ### Field Summary

    - ### Fields inherited from class org.opencv.dnn.Net

      `nativeObj`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `Model​(long addr)` |
    `` | `Model​(java.lang.String model)` | Create model from deep learning network represented in one of the supported formats.
    `` | `Model​(java.lang.String model, java.lang.String config)` | Create model from deep learning network represented in one of the supported formats.
    `` | `Model​(Net network)` | Create model from deep learning network.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Model` | `__fromPtr__​(long addr)` |
    `protected void` | `finalize()` |
    `void` | `predict​(Mat frame, java.util.List<Mat> outs)` | Given the `input` frame, create input blob, run net and return the output `blobs`.
    `Model` | `setInputCrop​(boolean crop)` | Set flag crop for frame.
    `Model` | `setInputMean​(Scalar mean)` | Set mean value for frame.
    `void` | `setInputParams()` | Set preprocessing parameters for frame.
    `void` | `setInputParams​(double scale)` | Set preprocessing parameters for frame.
    `void` | `setInputParams​(double scale, Size size)` | Set preprocessing parameters for frame.
    `void` | `setInputParams​(double scale, Size size, Scalar mean)` | Set preprocessing parameters for frame.
    `void` | `setInputParams​(double scale, Size size, Scalar mean, boolean swapRB)` | Set preprocessing parameters for frame.
    `void` | `setInputParams​(double scale, Size size, Scalar mean, boolean swapRB, boolean crop)` | Set preprocessing parameters for frame.
    `Model` | `setInputScale​(double scale)` | Set scalefactor value for frame.
    `Model` | `setInputSize​(int width, int height)` | Set input size for frame.
    `Model` | `setInputSize​(Size size)` | Set input size for frame.
    `Model` | `setInputSwapRB​(boolean swapRB)` | Set flag swapRB for frame.

    - ### Methods inherited from class org.opencv.dnn.Net

      `connect, dump, dumpToFile, empty, enableFusion, forward, forward, forward, forward, forward, getFLOPS, getFLOPS, getFLOPS, getFLOPS, getLayer, getLayerId, getLayerNames, getLayersCount, getLayerTypes, getMemoryConsumption, getMemoryConsumption, getMemoryConsumption, getNativeObjAddr, getParam, getParam, getPerfProfile, getUnconnectedOutLayers, getUnconnectedOutLayersNames, readFromModelOptimizer, readFromModelOptimizer, setHalideScheduler, setInput, setInput, setInput, setInput, setInputShape, setInputsNames, setParam, setPreferableBackend, setPreferableTarget`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Model

          protected Model​(long addr)

    - #### Model

          public Model​(Net network)

      Create model from deep learning network.
      Parameters:
        `network` - Net object.

    - #### Model

          public Model​(java.lang.String model,
                       java.lang.String config)

      Create model from deep learning network represented in one of the supported formats. An order of `model` and `config` arguments does not matter.
      Parameters:
        `model` - Binary file contains trained weights.
        `config` - Text file contains network configuration.

    - #### Model

          public Model​(java.lang.String model)

      Create model from deep learning network represented in one of the supported formats. An order of `model` and `config` arguments does not matter.
      Parameters:
        `model` - Binary file contains trained weights.

  - ### Method Detail

    - #### __fromPtr__

          public static Model __fromPtr__​(long addr)

    - #### setInputCrop

          public Model setInputCrop​(boolean crop)

      Set flag crop for frame.
      Parameters:
        `crop` - Flag which indicates whether image will be cropped after resize or not.
      Returns:
        automatically generated

    - #### setInputMean

          public Model setInputMean​(Scalar mean)

      Set mean value for frame.
      Parameters:
        `mean` - Scalar with mean values which are subtracted from channels.
      Returns:
        automatically generated

    - #### setInputScale

          public Model setInputScale​(double scale)

      Set scalefactor value for frame.
      Parameters:
        `scale` - Multiplier for frame values.
      Returns:
        automatically generated

    - #### setInputSize

          public Model setInputSize​(Size size)

      Set input size for frame.
      Parameters:
        `size` - New input size. Note: If shape of the new blob less than 0, then frame size not change.
      Returns:
        automatically generated

    - #### setInputSize

          public Model setInputSize​(int width,
                                    int height)

      Set input size for frame.
      Parameters:
        `width` - New input width.
        `height` - New input height. Note: If shape of the new blob less than 0, then frame size not change.
      Returns:
        automatically generated

    - #### setInputSwapRB

          public Model setInputSwapRB​(boolean swapRB)

      Set flag swapRB for frame.
      Parameters:
        `swapRB` - Flag which indicates that swap first and last channels.
      Returns:
        automatically generated

    - #### predict

          public void predict​(Mat frame,
                              java.util.List<Mat> outs)

      Given the `input` frame, create input blob, run net and return the output `blobs`.
      Parameters:
        `outs` - Allocated output blobs, which will store results of the computation.
        `frame` - automatically generated

    - #### setInputParams

          public void setInputParams​(double scale,
                                     Size size,
                                     Scalar mean,
                                     boolean swapRB,
                                     boolean crop)

      Set preprocessing parameters for frame.
      Parameters:
        `size` - New input size.
        `mean` - Scalar with mean values which are subtracted from channels.
        `scale` - Multiplier for frame values.
        `swapRB` - Flag which indicates that swap first and last channels.
        `crop` - Flag which indicates whether image will be cropped after resize or not. blob(n, c, y, x) = scale * resize( frame(y, x, c) ) - mean(c) )

    - #### setInputParams

          public void setInputParams​(double scale,
                                     Size size,
                                     Scalar mean,
                                     boolean swapRB)

      Set preprocessing parameters for frame.
      Parameters:
        `size` - New input size.
        `mean` - Scalar with mean values which are subtracted from channels.
        `scale` - Multiplier for frame values.
        `swapRB` - Flag which indicates that swap first and last channels. blob(n, c, y, x) = scale * resize( frame(y, x, c) ) - mean(c) )

    - #### setInputParams

          public void setInputParams​(double scale,
                                     Size size,
                                     Scalar mean)

      Set preprocessing parameters for frame.
      Parameters:
        `size` - New input size.
        `mean` - Scalar with mean values which are subtracted from channels.
        `scale` - Multiplier for frame values. blob(n, c, y, x) = scale * resize( frame(y, x, c) ) - mean(c) )

    - #### setInputParams

          public void setInputParams​(double scale,
                                     Size size)

      Set preprocessing parameters for frame.
      Parameters:
        `size` - New input size.
        `scale` - Multiplier for frame values. blob(n, c, y, x) = scale * resize( frame(y, x, c) ) - mean(c) )

    - #### setInputParams

          public void setInputParams​(double scale)

      Set preprocessing parameters for frame.
      Parameters:
        `scale` - Multiplier for frame values. blob(n, c, y, x) = scale * resize( frame(y, x, c) ) - mean(c) )

    - #### setInputParams

          public void setInputParams()

      Set preprocessing parameters for frame. blob(n, c, y, x) = scale * resize( frame(y, x, c) ) - mean(c) )

    - #### finalize

          protected void finalize()
                           throws java.lang.Throwable

      Overrides:
        `finalize` in class `Net`
      Throws:
        `java.lang.Throwable`