CLAHE Python bindings
[profile/ivi/opencv.git] / modules / java / generator / src / java / core+MatOfDouble.java
1 package org.opencv.core;
2
3 import java.util.Arrays;
4 import java.util.List;
5
6 public class MatOfDouble extends Mat {
7     // 64FC(x)
8     private static final int _depth = CvType.CV_64F;
9     private static final int _channels = 1;
10
11     public MatOfDouble() {
12         super();
13     }
14
15     protected MatOfDouble(long addr) {
16         super(addr);
17         if( !empty() && checkVector(_channels, _depth) < 0 )
18             throw new IllegalArgumentException("Incomatible Mat");
19         //FIXME: do we need release() here?
20     }
21
22     public static MatOfDouble fromNativeAddr(long addr) {
23         return new MatOfDouble(addr);
24     }
25
26     public MatOfDouble(Mat m) {
27         super(m, Range.all());
28         if( !empty() && checkVector(_channels, _depth) < 0 )
29             throw new IllegalArgumentException("Incomatible Mat");
30         //FIXME: do we need release() here?
31     }
32
33     public MatOfDouble(double...a) {
34         super();
35         fromArray(a);
36     }
37
38     public void alloc(int elemNumber) {
39         if(elemNumber>0)
40             super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
41     }
42
43     public void fromArray(double...a) {
44         if(a==null || a.length==0)
45             return;
46         int num = a.length / _channels;
47         alloc(num);
48         put(0, 0, a); //TODO: check ret val!
49     }
50
51     public double[] toArray() {
52         int num = checkVector(_channels, _depth);
53         if(num < 0)
54             throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
55         double[] a = new double[num * _channels];
56         if(num == 0)
57             return a;
58         get(0, 0, a); //TODO: check ret val!
59         return a;
60     }
61
62     public void fromList(List<Double> lb) {
63         if(lb==null || lb.size()==0)
64             return;
65         Double ab[] = lb.toArray(new Double[0]);
66         double a[] = new double[ab.length];
67         for(int i=0; i<ab.length; i++)
68             a[i] = ab[i];
69         fromArray(a);
70     }
71
72     public List<Double> toList() {
73         double[] a = toArray();
74         Double ab[] = new Double[a.length];
75         for(int i=0; i<a.length; i++)
76             ab[i] = a[i];
77         return Arrays.asList(ab);
78     }
79 }