javacpp icon indicating copy to clipboard operation
javacpp copied to clipboard

Mat indexer ignores 4th dimension

Open Wouter1 opened this issue 1 year ago • 2 comments

I create a 4dim matrix and then print the elements using createIndexer.toString() code:

	public void testToString4D() {

		Mat mat = mat4d(5, 4, 2, 3);
		System.out.println(mat.createIndexer().toString());
	}

	private Mat mat4d(int s1, int s2, int s3, int s4) {
		int[] data = new int[s1 * s2 * s3 * s4];
		for (int n = 0; n < s1 * s2 * s3 * s4; n++)
			data[n] = n;
		Mat mat = new Mat(data).reshape(1, 4, new int[] { s1, s2, s3, s4 });
		return mat;
	}


It shows

[ (0.0, 3.0), (6.0, 9.0), (12.0, 15.0), (18.0, 21.0)
  (24.0, 27.0), (30.0, 33.0), (36.0, 39.0), (42.0, 45.0)
  (48.0, 51.0), (54.0, 57.0), (60.0, 63.0), (66.0, 69.0)
  (72.0, 75.0), (78.0, 81.0), (84.0, 87.0), (90.0, 93.0)
  (96.0, 99.0), (102.0, 105.0), (108.0, 111.0), (114.0, 117.0) ]

The deepest dimension is completely missing, instead it shows just a single double with what looks like the forst element of the deepest dimension

Wouter1 avatar Aug 07 '23 10:08 Wouter1

This is with

		<dependency>
			<groupId>org.bytedeco</groupId>
			<artifactId>javacv-platform</artifactId>
			<version>1.5.8</version>
		</dependency>

Wouter1 avatar Aug 07 '23 10:08 Wouter1

Yes, Indexer.toString() needs to be improved. Contributions are welcome!

saudet avatar Aug 07 '23 13:08 saudet