\r
\r
public Mat(long nativeMat) {\r
- /*if(nativeMat == 0) \r
- throw new java.lang.UnsupportedOperationException("Native object address is NULL");*/\r
+ if(nativeMat == 0) \r
+ throw new java.lang.UnsupportedOperationException("Native object address is NULL");\r
this.nativeObj = nativeMat;\r
}\r
\r
this( nCreateMat(rows, cols, type, s.val[0], s.val[1], s.val[2], s.val[3]) );\r
}\r
\r
+ //javadoc:Mat::eye(rows,cols,type)\r
+ public static Mat eye(int rows, int cols, int type) {\r
+ return new Mat( nEye(rows, cols, type) );\r
+ }\r
+ \r
//javadoc:Mat::release()\r
public void release() {\r
nRelease(nativeObj);\r
//javadoc:Mat::toString()\r
@Override\r
public String toString() {\r
- if(nativeObj == 0) return "Mat [ nativeObj=NULL ]";\r
return "Mat [ " +\r
rows() + "*" + cols() + "*" + CvType.typeToString(type()) +\r
", isCont=" + isContinuous() + ", isSubmat=" + isSubmatrix() +\r
\r
//javadoc:Mat::size()\r
public Size size() {\r
- if(nativeObj == 0) return new Size();\r
return new Size(nSize(nativeObj));\r
}\r
\r
- private void checkNull() {\r
- if(nativeObj == 0) \r
- throw new java.lang.UnsupportedOperationException("Native object address is NULL");\r
- }\r
-\r
//javadoc:Mat::type()\r
public int type() {\r
- checkNull();\r
return nType(nativeObj);\r
}\r
\r
//javadoc:Mat::depth()\r
- public int depth() { return CvType.depth(type()); }\r
+ public int depth() { \r
+ return CvType.depth(type()); \r
+ }\r
\r
//javadoc:Mat::channels()\r
- public int channels() { return CvType.channels(type()); }\r
+ public int channels() { \r
+ return CvType.channels(type());\r
+ }\r
\r
//javadoc:Mat::elemSize()\r
- public int elemSize() { return CvType.ELEM_SIZE(type()); }\r
+ public int elemSize() { \r
+ return CvType.ELEM_SIZE(type()); \r
+ }\r
\r
//javadoc:Mat::rows()\r
public int rows() {\r
- if(nativeObj == 0) \r
- return 0;\r
return nRows(nativeObj);\r
}\r
\r
//javadoc:Mat::height()\r
- public int height() { return rows(); }\r
+ public int height() { \r
+ return rows(); \r
+ }\r
\r
//javadoc:Mat::cols()\r
public int cols() {\r
- if(nativeObj == 0) \r
- return 0;\r
return nCols(nativeObj);\r
}\r
\r
//javadoc:Mat::width()\r
- public int width() { return cols(); }\r
+ public int width() { \r
+ return cols(); \r
+ }\r
\r
//javadoc:Mat::total()\r
- public int total() { return rows() * cols(); }\r
+ public int total() { \r
+ return rows() * cols(); \r
+ }\r
\r
//javadoc:Mat::dataAddr()\r
public long dataAddr() {\r
- if(nativeObj == 0) \r
- return 0;\r
return nData(nativeObj);\r
}\r
\r
//javadoc:Mat::isContinuous()\r
public boolean isContinuous() {\r
- if(nativeObj == 0) \r
- return false; // maybe throw an exception instead?\r
return nIsCont(nativeObj);\r
}\r
\r
//javadoc:Mat::isSubmatrix()\r
public boolean isSubmatrix() {\r
- if(nativeObj == 0) \r
- return false; // maybe throw an exception instead?\r
return nIsSubmat(nativeObj);\r
}\r
\r
//javadoc:Mat::submat(rowStart,rowEnd,colStart,colEnd)\r
public Mat submat(int rowStart, int rowEnd, int colStart, int colEnd) {\r
- checkNull();\r
return new Mat( nSubmat(nativeObj, rowStart, rowEnd, colStart, colEnd) );\r
}\r
\r
//javadoc:Mat::rowRange(startrow,endrow)\r
- public Mat rowRange(int startrow, int endrow) { return submat(startrow, endrow, 0, -1); }\r
+ public Mat rowRange(int startrow, int endrow) { \r
+ return submat(startrow, endrow, 0, -1); \r
+ }\r
\r
//javadoc:Mat::row(i)\r
- public Mat row(int i) { return submat(i, i+1, 0, -1); }\r
+ public Mat row(int i) { \r
+ return submat(i, i+1, 0, -1); \r
+ }\r
\r
//javadoc:Mat::colRange(startcol,endcol)\r
- public Mat colRange(int startcol, int endcol) { return submat(0, -1, startcol, endcol); }\r
+ public Mat colRange(int startcol, int endcol) { \r
+ return submat(0, -1, startcol, endcol); \r
+ }\r
\r
//javadoc:Mat::col(j)\r
- public Mat col(int j) { return submat(0, -1, j, j+1); }\r
+ public Mat col(int j) { \r
+ return submat(0, -1, j, j+1); \r
+ }\r
\r
//javadoc:Mat::clone()\r
public Mat clone() {\r
- checkNull();\r
return new Mat( nClone(nativeObj) );\r
}\r
\r
//javadoc:Mat::put(row,col,data)\r
public int put(int row, int col, double...data) {\r
- checkNull();\r
- if(data != null)\r
- return nPutD(nativeObj, row, col, data.length, data);\r
- else\r
- return 0;\r
+ return nPutD(nativeObj, row, col, data.length, data);\r
}\r
\r
//javadoc:Mat::put(row,col,data)\r
public int put(int row, int col, float[] data) {\r
- checkNull();\r
- if(data != null) {\r
- int t = type();\r
- if(CvType.depth(t) == CvType.CV_32F) {\r
- return nPutF(nativeObj, row, col, data.length, data);\r
- }\r
- throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
- } else return 0;\r
+ int t = type();\r
+ if(CvType.depth(t) == CvType.CV_32F) {\r
+ return nPutF(nativeObj, row, col, data.length, data);\r
+ }\r
+ throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
}\r
\r
//javadoc:Mat::put(row,col,data) \r
public int put(int row, int col, int[] data) {\r
- checkNull();\r
- if(data != null) {\r
- int t = type();\r
- if(CvType.depth(t) == CvType.CV_32S) {\r
- return nPutI(nativeObj, row, col, data.length, data);\r
- }\r
- throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
- } else return 0;\r
+ int t = type();\r
+ if(CvType.depth(t) == CvType.CV_32S) {\r
+ return nPutI(nativeObj, row, col, data.length, data);\r
+ }\r
+ throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
}\r
\r
//javadoc:Mat::put(row,col,data)\r
public int put(int row, int col, short[] data) {\r
- checkNull();\r
- if(data != null) {\r
- int t = type();\r
- if(CvType.depth(t) == CvType.CV_16U || CvType.depth(t) == CvType.CV_16S) {\r
- return nPutS(nativeObj, row, col, data.length, data);\r
- }\r
- throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
- } else return 0;\r
+ int t = type();\r
+ if(CvType.depth(t) == CvType.CV_16U || CvType.depth(t) == CvType.CV_16S) {\r
+ return nPutS(nativeObj, row, col, data.length, data);\r
+ }\r
+ throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
}\r
\r
//javadoc:Mat::put(row,col,data)\r
public int put(int row, int col, byte[] data) {\r
- checkNull();\r
- if(data != null) {\r
- int t = type();\r
- if(CvType.depth(t) == CvType.CV_8U || CvType.depth(t) == CvType.CV_8S) {\r
- return nPutB(nativeObj, row, col, data.length, data);\r
- }\r
- throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
- } else return 0;\r
+ int t = type();\r
+ if(CvType.depth(t) == CvType.CV_8U || CvType.depth(t) == CvType.CV_8S) {\r
+ return nPutB(nativeObj, row, col, data.length, data);\r
+ }\r
+ throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
}\r
\r
//javadoc:Mat::get(row,col,data)\r
public int get(int row, int col, byte[] data) {\r
- checkNull();\r
int t = type();\r
if(CvType.depth(t) == CvType.CV_8U || CvType.depth(t) == CvType.CV_8S) {\r
return nGetB(nativeObj, row, col, data.length, data);\r
\r
//javadoc:Mat::get(row,col,data)\r
public int get(int row, int col, short[] data) {\r
- checkNull();\r
int t = type();\r
if(CvType.depth(t) == CvType.CV_16U || CvType.depth(t) == CvType.CV_16S) {\r
return nGetS(nativeObj, row, col, data.length, data);\r
\r
//javadoc:Mat::get(row,col,data)\r
public int get(int row, int col, int[] data) {\r
- checkNull();\r
int t = type();\r
if(CvType.depth(t) == CvType.CV_32S) {\r
return nGetI(nativeObj, row, col, data.length, data);\r
\r
//javadoc:Mat::get(row,col,data)\r
public int get(int row, int col, float[] data) {\r
- checkNull();\r
int t = type();\r
if(CvType.depth(t) == CvType.CV_32F) {\r
return nGetF(nativeObj, row, col, data.length, data);\r
\r
//javadoc:Mat::get(row,col,data)\r
public int get(int row, int col, double[] data) {\r
- checkNull();\r
int t = type();\r
if(CvType.depth(t) == CvType.CV_64F) {\r
return nGetD(nativeObj, row, col, data.length, data);\r
\r
//javadoc:Mat::get(row,col)\r
public double[] get(int row, int col) {\r
- checkNull();\r
- //CvType t = type();\r
- //if(t.depth() == CvType.CV_64F) {\r
- return nGet(nativeObj, row, col);\r
- //}\r
- //throw new java.lang.UnsupportedOperationException("Mat data type is not compatible: " + t);\r
+ return nGet(nativeObj, row, col);\r
}\r
\r
\r
//javadoc:Mat::setTo(s)\r
public void setTo(Scalar s) {\r
- checkNull();\r
nSetTo(nativeObj, s.val[0], s.val[1], s.val[2], s.val[3]);\r
}\r
\r
//javadoc:Mat::copyTo(m)\r
public void copyTo(Mat m) {\r
- checkNull();\r
- if(m.nativeObj == 0) \r
- throw new java.lang.UnsupportedOperationException("Destination native object address is NULL");\r
nCopyTo(nativeObj, m.nativeObj);\r
}\r
\r
//javadoc:Mat::dot(m)\r
public double dot(Mat m) {\r
- checkNull();\r
return nDot(nativeObj, m.nativeObj);\r
}\r
\r
//javadoc:Mat::cross(m)\r
public Mat cross(Mat m) {\r
- checkNull();\r
return new Mat( nCross(nativeObj, m.nativeObj) );\r
}\r
\r
//javadoc:Mat::inv()\r
public Mat inv() {\r
- checkNull();\r
return new Mat( nInv(nativeObj) );\r
}\r
\r
return nativeObj;\r
}\r
\r
- //javadoc:Mat::eye(rows,cols,type)\r
- static public Mat eye(int rows, int cols, int type) {\r
- return new Mat( nEye(rows, cols, type) );\r
- }\r
- \r
// native stuff\r
static { System.loadLibrary("opencv_java"); }\r
public final long nativeObj;\r