001//
002// This file is auto-generated. Please don't modify it!
003//
004package org.opencv.photo;
005
006import java.util.ArrayList;
007import java.util.List;
008import org.opencv.core.Algorithm;
009import org.opencv.core.Mat;
010import org.opencv.utils.Converters;
011
012// C++: class MergeExposures
013/**
014 * The base class algorithms that can merge exposure sequence to a single image.
015 */
016public class MergeExposures extends Algorithm {
017
018    protected MergeExposures(long addr) { super(addr); }
019
020    // internal usage only
021    public static MergeExposures __fromPtr__(long addr) { return new MergeExposures(addr); }
022
023    //
024    // C++:  void cv::MergeExposures::process(vector_Mat src, Mat& dst, Mat times, Mat response)
025    //
026
027    /**
028     * Merges images.
029     *
030     *     @param src vector of input images
031     *     @param dst result image
032     *     @param times vector of exposure time values for each image
033     *     @param response 256x1 matrix with inverse camera response function for each pixel value, it should
034     *     have the same number of channels as images.
035     */
036    public void process(List<Mat> src, Mat dst, Mat times, Mat response) {
037        Mat src_mat = Converters.vector_Mat_to_Mat(src);
038        process_0(nativeObj, src_mat.nativeObj, dst.nativeObj, times.nativeObj, response.nativeObj);
039    }
040
041
042    @Override
043    protected void finalize() throws Throwable {
044        delete(nativeObj);
045    }
046
047
048
049    // C++:  void cv::MergeExposures::process(vector_Mat src, Mat& dst, Mat times, Mat response)
050    private static native void process_0(long nativeObj, long src_mat_nativeObj, long dst_nativeObj, long times_nativeObj, long response_nativeObj);
051
052    // native support for java finalize()
053    private static native void delete(long nativeObj);
054
055}