1 package org.opencv.core;
3 import java.util.Arrays;
6 public class MatOfByte extends Mat {
8 private static final int _depth = CvType.CV_8U;
9 private static final int _channels = 1;
15 protected MatOfByte(long addr) {
17 if( !empty() && checkVector(_channels, _depth) < 0 )
18 throw new IllegalArgumentException("Incompatible Mat");
19 //FIXME: do we need release() here?
22 public static MatOfByte fromNativeAddr(long addr) {
23 return new MatOfByte(addr);
26 public MatOfByte(Mat m) {
27 super(m, Range.all());
28 if( !empty() && checkVector(_channels, _depth) < 0 )
29 throw new IllegalArgumentException("Incompatible Mat");
30 //FIXME: do we need release() here?
33 public MatOfByte(byte...a) {
38 public MatOfByte(int offset, int length, byte...a) {
40 fromArray(offset, length, a);
43 public void alloc(int elemNumber) {
45 super.create(elemNumber, 1, CvType.makeType(_depth, _channels));
48 public void fromArray(byte...a) {
49 if(a==null || a.length==0)
51 int num = a.length / _channels;
53 put(0, 0, a); //TODO: check ret val!
56 public void fromArray(int offset, int length, byte...a) {
58 throw new IllegalArgumentException("offset < 0");
60 throw new NullPointerException();
61 if (length < 0 || length + offset > a.length)
62 throw new IllegalArgumentException("invalid 'length' parameter: " + Integer.toString(length));
65 int num = length / _channels;
67 put(0, 0, a, offset, length); //TODO: check ret val!
70 public byte[] toArray() {
71 int num = checkVector(_channels, _depth);
73 throw new RuntimeException("Native Mat has unexpected type or size: " + toString());
74 byte[] a = new byte[num * _channels];
77 get(0, 0, a); //TODO: check ret val!
81 public void fromList(List<Byte> lb) {
82 if(lb==null || lb.size()==0)
84 Byte ab[] = lb.toArray(new Byte[0]);
85 byte a[] = new byte[ab.length];
86 for(int i=0; i<ab.length; i++)
91 public List<Byte> toList() {
93 Byte ab[] = new Byte[a.length];
94 for(int i=0; i<a.length; i++)
96 return Arrays.asList(ab);