/// <summary> /// Release the MergeDebevec object /// </summary> protected override void DisposeObject() { if (IntPtr.Zero != _ptr) { Cv_Invoke.cveMergeDebevecRelease(ref _ptr, ref _sharedPtr); } base.DisposeObject(); }
/// <summary> /// Merges images. /// </summary> /// <param name="src">Vector of input images</param> /// <param name="dst">Result image</param> /// <param name="times">Vector of exposure time values for each image</param> /// <param name="response">256x1 matrix with inverse camera response function for each pixel value, it should have the same number of channels as images.</param> public void Process(IInputArray src, IOutputArray dst, IInputArray times, IInputArray response) { using (InputArray iaSrc = src.GetInputArray()) using (OutputArray oaDst = dst.GetOutputArray()) using (InputArray iaTimes = times.GetInputArray()) using (InputArray iaResponse = response.GetInputArray()) { Cv_Invoke.cveMergeExposuresProcess(_mergeExposuresPtr, iaSrc, oaDst, iaTimes, iaResponse); } }
/// <summary> /// Creates MergeMertens object. /// </summary> /// <param name="contrastWeight">contrast measure weight.</param> /// <param name="saturationWeight">saturation measure weight</param> /// <param name="exposureWeight">well-exposedness measure weight</param> public MergeMertens(float contrastWeight = 1.0f, float saturationWeight = 1.0f, float exposureWeight = 0.0f) { _ptr = Cv_Invoke.cveMergeMertensCreate(contrastWeight, saturationWeight, exposureWeight, ref _mergeExposuresPtr, ref _sharedPtr); }
/// <summary> /// Creates MergeDebevec object. /// </summary> public MergeDebevec() { _ptr = Cv_Invoke.cveMergeDebevecCreate(ref _mergeExposuresPtr, ref _sharedPtr); }
/// <summary> /// Creates MergeRobertson object. /// </summary> public MergeRobertson() { _ptr = Cv_Invoke.cveMergeRobertsonCreate(ref _mergeExposuresPtr, ref _sharedPtr); }