org.opencv.dnn.SegmentationModel Maven / Gradle / Ivy
//
// This file is auto-generated. Please don't modify it!
//
package org.opencv.dnn;
import org.opencv.core.Mat;
import org.opencv.dnn.Model;
import org.opencv.dnn.Net;
// C++: class SegmentationModel
/**
* This class represents high-level API for segmentation models
*
* SegmentationModel allows to set params for preprocessing input image.
* SegmentationModel creates net from file with trained weights and config,
* sets preprocessing input, runs forward pass and returns the class prediction for each pixel.
*/
public class SegmentationModel extends Model {
protected SegmentationModel(long addr) { super(addr); }
// internal usage only
public static SegmentationModel __fromPtr__(long addr) { return new SegmentationModel(addr); }
//
// C++: cv::dnn::SegmentationModel::SegmentationModel(String model, String config = "")
//
/**
* Create segmentation model from network represented in one of the supported formats.
* An order of {@code model} and {@code config} arguments does not matter.
* @param model Binary file contains trained weights.
* @param config Text file contains network configuration.
*/
public SegmentationModel(String model, String config) {
super(SegmentationModel_0(model, config));
}
/**
* Create segmentation model from network represented in one of the supported formats.
* An order of {@code model} and {@code config} arguments does not matter.
* @param model Binary file contains trained weights.
*/
public SegmentationModel(String model) {
super(SegmentationModel_1(model));
}
//
// C++: cv::dnn::SegmentationModel::SegmentationModel(Net network)
//
/**
* Create model from deep learning network.
* @param network Net object.
*/
public SegmentationModel(Net network) {
super(SegmentationModel_2(network.nativeObj));
}
//
// C++: void cv::dnn::SegmentationModel::segment(Mat frame, Mat& mask)
//
/**
* Given the {@code input} frame, create input blob, run net
* @param mask Allocated class prediction for each pixel
* @param frame automatically generated
*/
public void segment(Mat frame, Mat mask) {
segment_0(nativeObj, frame.nativeObj, mask.nativeObj);
}
@Override
protected void finalize() throws Throwable {
delete(nativeObj);
}
// C++: cv::dnn::SegmentationModel::SegmentationModel(String model, String config = "")
private static native long SegmentationModel_0(String model, String config);
private static native long SegmentationModel_1(String model);
// C++: cv::dnn::SegmentationModel::SegmentationModel(Net network)
private static native long SegmentationModel_2(long network_nativeObj);
// C++: void cv::dnn::SegmentationModel::segment(Mat frame, Mat& mask)
private static native void segment_0(long nativeObj, long frame_nativeObj, long mask_nativeObj);
// native support for java finalize()
private static native void delete(long nativeObj);
}