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