/** Returns {@code this} where {@code b[offset:offset + length] = array/buffer[i]} */ public abstract UByteIndexer get(long i, int[] b, int offset, int length); /** Returns {@code array/buffer[i * strides[0] + j]} */
/** Returns {@code this} where {@code b[offset:offset + length] = array/buffer[index(indices)]} */ public abstract UByteIndexer get(long[] indices, int[] b, int offset, int length);
@Override public double getDouble(long... indices) { return get(indices); } @Override public UByteIndexer putDouble(long[] indices, double b) { return put(indices, (int)b); }
/** Returns {@code this} where {@code b[offset:offset + length] = array/buffer[i * strides[0] + j]} */ public abstract UByteIndexer get(long i, long j, int[] b, int offset, int length); /** Returns {@code array/buffer[i * strides[0] + j * strides[1] + k]} */
private void erodePoints(boolean[] arrayToErode) { for (int i = 0; i < getWidth() * getHeight(); i++) { erosionIndexer.put(i, arrayToErode[i] ? 1 : 0); } cvErode(nativeArrayToErode, nativeArrayToErode); for (int i = 0; i < getWidth() * getHeight(); i++) { arrayToErode[i] = erosionIndexer.get(i) == 1; } }
if (statusIndex.get(j) != 0) {