/
MergeDebevec.cs
63 lines (55 loc) · 1.42 KB
/
MergeDebevec.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
using OpenCvSharp.Internal;
namespace OpenCvSharp;
/// <summary>
/// The resulting HDR image is calculated as weighted average of the exposures considering exposure
/// values and camera response.
///
/// For more information see @cite DM97 .
/// </summary>
public sealed class MergeDebevec : MergeExposures
{
private Ptr? ptrObj;
/// <summary>
/// Creates instance by MergeDebevec*
/// </summary>
private MergeDebevec(IntPtr p)
{
ptrObj = new Ptr(p);
ptr = ptrObj.Get();
}
/// <summary>
/// Creates the empty model.
/// </summary>
/// <returns></returns>
public static MergeDebevec Create()
{
var ptr = NativeMethods.photo_createMergeDebevec();
return new MergeDebevec(ptr);
}
/// <summary>
/// Releases managed resources
/// </summary>
protected override void DisposeManaged()
{
ptrObj?.Dispose();
ptrObj = null;
base.DisposeManaged();
}
private class Ptr : OpenCvSharp.Ptr
{
public Ptr(IntPtr ptr) : base(ptr)
{
}
public override IntPtr Get()
{
var res = NativeMethods.photo_Ptr_MergeDebevec_get(ptr);
GC.KeepAlive(this);
return res;
}
protected override void DisposeUnmanaged()
{
NativeMethods.photo_Ptr_MergeDebevec_delete(ptr);
base.DisposeUnmanaged();
}
}
}