Skip to content

Commit

Permalink
* Deprecate slow get() and put() methods of CvMat in favor of …
Browse files Browse the repository at this point in the history
…the fast ones from `createIndexer()` ([issue javacv:317](http://code.google.com/p/javacv/issues/detail?id=317))
  • Loading branch information
saudet committed Nov 16, 2014
1 parent 1bccafd commit 4313b85
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 19 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

* Deprecate slow `get()` and `put()` methods of `CvMat` in favor of the fast ones from `createIndexer()` ([issue javacv:317](http://code.google.com/p/javacv/issues/detail?id=317))
* Include `operations.hpp` and `mat.hpp` in `opencv_core` to get a few important functions such as `read()` and `write()` for `FileStorage`
* Replace `install_name_tool` hack to set `@rpath` on Mac OS X with patches to do it properly on install ([issue bytedeco/javacpp#6](https://github.com/bytedeco/javacpp/issues/6) and [issue bytedeco/javacv#49](https://github.com/bytedeco/javacv/issues/49))
* Disable DocLint, which prevents the build from succeeding on Java 8 ([issue bytedeco/javacpp#5](https://github.com/bytedeco/javacpp/issues/5))
Expand Down
52 changes: 33 additions & 19 deletions opencv/src/main/java/org/bytedeco/javacpp/helper/opencv_core.java
Original file line number Diff line number Diff line change
Expand Up @@ -1377,7 +1377,8 @@ public int size() {
@Override public BytePointer arrayData() { return data_ptr(); }
@Override public int arrayStep() { return step(); }

public void reset() {
/** @see #createBuffer() */
@Deprecated public void reset() {
fullSize = 0;
byteBuffer = null;
shortBuffer = null;
Expand All @@ -1393,43 +1394,44 @@ public void reset() {
private IntBuffer intBuffer = null;
private FloatBuffer floatBuffer = null;
private DoubleBuffer doubleBuffer = null;
public ByteBuffer getByteBuffer() {
@Deprecated public ByteBuffer getByteBuffer() {
if (byteBuffer == null) {
byteBuffer = data_ptr().capacity(fullSize()).asBuffer();
}
byteBuffer.position(0);
return byteBuffer;
}
public ShortBuffer getShortBuffer() {
@Deprecated public ShortBuffer getShortBuffer() {
if (shortBuffer == null) {
shortBuffer = data_s().capacity(fullSize()/2).asBuffer();
}
shortBuffer.position(0);
return shortBuffer;
}
public IntBuffer getIntBuffer() {
@Deprecated public IntBuffer getIntBuffer() {
if (intBuffer == null) {
intBuffer = data_i().capacity(fullSize()/4).asBuffer();
}
intBuffer.position(0);
return intBuffer;
}
public FloatBuffer getFloatBuffer() {
@Deprecated public FloatBuffer getFloatBuffer() {
if (floatBuffer == null) {
floatBuffer = data_fl().capacity(fullSize()/4).asBuffer();
}
floatBuffer.position(0);
return floatBuffer;
}
public DoubleBuffer getDoubleBuffer() {
@Deprecated public DoubleBuffer getDoubleBuffer() {
if (doubleBuffer == null) {
doubleBuffer = data_db().capacity(fullSize()/8).asBuffer();
}
doubleBuffer.position(0);
return doubleBuffer;
}

public double get(int i) {
/** @see #createIndexer() */
@Deprecated public double get(int i) {
switch (depth()) {
case CV_8U: return getByteBuffer() .get(i)&0xFF;
case CV_8S: return getByteBuffer() .get(i);
Expand All @@ -1442,14 +1444,17 @@ public double get(int i) {
}
return Double.NaN;
}
public double get(int i, int j) {
/** @see #createIndexer() */
@Deprecated public double get(int i, int j) {
return get(i*step()/elemSize() + j*channels());
}

public double get(int i, int j, int k) {
/** @see #createIndexer() */
@Deprecated public double get(int i, int j, int k) {
return get(i*step()/elemSize() + j*channels() + k);
}
public synchronized CvMat get(int index, double[] vv, int offset, int length) {
/** @see #createIndexer() */
@Deprecated public synchronized CvMat get(int index, double[] vv, int offset, int length) {
int d = depth();
switch (d) {
case CV_8U:
Expand Down Expand Up @@ -1498,19 +1503,23 @@ public synchronized CvMat get(int index, double[] vv, int offset, int length) {
}
return (CvMat)this;
}
public CvMat get(int index, double[] vv) {
/** @see #createIndexer() */
@Deprecated public CvMat get(int index, double[] vv) {
return get(index, vv, 0, vv.length);
}
public CvMat get(double[] vv) {
/** @see #createIndexer() */
@Deprecated public CvMat get(double[] vv) {
return get(0, vv);
}
public double[] get() {
/** @see #createIndexer() */
@Deprecated public double[] get() {
double[] vv = new double[fullSize()/elemSize()];
get(vv);
return vv;
}

public CvMat put(int i, double v) {
/** @see #createIndexer() */
@Deprecated public CvMat put(int i, double v) {
switch (depth()) {
case CV_8U:
case CV_8S: getByteBuffer() .put(i, (byte)(int)v); break;
Expand All @@ -1523,13 +1532,16 @@ public CvMat put(int i, double v) {
}
return (CvMat)this;
}
public CvMat put(int i, int j, double v) {
/** @see #createIndexer() */
@Deprecated public CvMat put(int i, int j, double v) {
return put(i*step()/elemSize() + j*channels(), v);
}
public CvMat put(int i, int j, int k, double v) {
/** @see #createIndexer() */
@Deprecated public CvMat put(int i, int j, int k, double v) {
return put(i*step()/elemSize() + j*channels() + k, v);
}
public synchronized CvMat put(int index, double[] vv, int offset, int length) {
/** @see #createIndexer() */
@Deprecated public synchronized CvMat put(int index, double[] vv, int offset, int length) {
switch (depth()) {
case CV_8U:
case CV_8S:
Expand Down Expand Up @@ -1570,10 +1582,12 @@ public synchronized CvMat put(int index, double[] vv, int offset, int length) {
}
return (CvMat)this;
}
public CvMat put(int index, double ... vv) {
/** @see #createIndexer() */
@Deprecated public CvMat put(int index, double ... vv) {
return put(index, vv, 0, vv.length);
}
public CvMat put(double ... vv) {
/** @see #createIndexer() */
@Deprecated public CvMat put(double ... vv) {
return put(0, vv);
}

Expand Down

0 comments on commit 4313b85

Please sign in to comment.