Skip to content

Commit a2791ce

Browse files
committed
Return RandomAccessibleInterval instead of Img
1 parent aaecc3c commit a2791ce

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

src/main/java/qupath/ext/imglib2/ImgBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ public ImgBuilder<T, A> cellCache(CellCache cellCache) {
244244
*
245245
* @return a list of {@link RandomAccessibleInterval} corresponding to each level of the input image
246246
*/
247-
public List<? extends RandomAccessibleInterval<T>> buildForAllLevels() {
247+
public List<RandomAccessibleInterval<T>> buildForAllLevels() {
248248
return IntStream.range(0, server.getMetadata().nLevels())
249249
.mapToObj(this::buildForLevel)
250250
.toList();
@@ -265,7 +265,7 @@ public List<? extends RandomAccessibleInterval<T>> buildForAllLevels() {
265265
* @return an {@link Img} corresponding to the provided level of the input image
266266
* @throws IllegalArgumentException if the provided level does not match with a level of the input image
267267
*/
268-
public Img<T> buildForLevel(int level) {
268+
public RandomAccessibleInterval<T> buildForLevel(int level) {
269269
if (level < 0 || level >= server.getMetadata().nLevels()) {
270270
throw new IllegalArgumentException(String.format(
271271
"The provided level %d is not within 0 and %d",
@@ -318,7 +318,7 @@ public Img<T> buildForLevel(int level) {
318318
* applied. The ith returned {@link RandomAccessibleInterval} corresponds to the ith provided downsample
319319
* @throws IllegalArgumentException if one of the provided downsamples is not greater than 0
320320
*/
321-
public List<? extends RandomAccessibleInterval<T>> buildForDownsamples(List<Double> downsamples) {
321+
public List<RandomAccessibleInterval<T>> buildForDownsamples(List<Double> downsamples) {
322322
return downsamples.stream()
323323
.map(this::buildForDownsample)
324324
.toList();

src/test/java/qupath/ext/imglib2/TestImgBuilder.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package qupath.ext.imglib2;
22

33
import net.imglib2.RandomAccessibleInterval;
4-
import net.imglib2.img.Img;
54
import net.imglib2.type.numeric.ARGBType;
65
import net.imglib2.type.numeric.integer.ByteType;
76
import net.imglib2.type.numeric.integer.IntType;
@@ -44,7 +43,7 @@ void Check_Rgb_Server() throws Exception {
4443
PixelType pixelType = PixelType.UINT8;
4544
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
4645

47-
Img<ARGBType> img = ImgBuilder.createBuilder(imageServer, new ARGBType()).buildForLevel(0);
46+
RandomAccessibleInterval<ARGBType> img = ImgBuilder.createBuilder(imageServer, new ARGBType()).buildForLevel(0);
4847

4948
Utils.assertArgbRandomAccessibleEquals(img, (x, y, channel, z, t) -> ARGBType.rgba(255, 0, 0, 0), 1);
5049

@@ -57,7 +56,7 @@ void Check_Uint8_Server() throws Exception {
5756
PixelType pixelType = PixelType.UINT8;
5857
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
5958

60-
Img<UnsignedByteType> img = ImgBuilder.createBuilder(imageServer, new UnsignedByteType()).buildForLevel(0);
59+
RandomAccessibleInterval<UnsignedByteType> img = ImgBuilder.createBuilder(imageServer, new UnsignedByteType()).buildForLevel(0);
6160

6261
Utils.assertRandomAccessibleEquals(img, (x, y, channel, z, t) -> 1, 1);
6362

@@ -70,7 +69,7 @@ void Check_Int8_Server() throws Exception {
7069
PixelType pixelType = PixelType.INT8;
7170
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
7271

73-
Img<ByteType> img = ImgBuilder.createBuilder(imageServer, new ByteType()).buildForLevel(0);
72+
RandomAccessibleInterval<ByteType> img = ImgBuilder.createBuilder(imageServer, new ByteType()).buildForLevel(0);
7473

7574
Utils.assertRandomAccessibleEquals(img, (x, y, channel, z, t) -> 1, 1);
7675

@@ -83,7 +82,7 @@ void Check_Uint16_Server() throws Exception {
8382
PixelType pixelType = PixelType.UINT16;
8483
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
8584

86-
Img<UnsignedShortType> img = ImgBuilder.createBuilder(imageServer, new UnsignedShortType()).buildForLevel(0);
85+
RandomAccessibleInterval<UnsignedShortType> img = ImgBuilder.createBuilder(imageServer, new UnsignedShortType()).buildForLevel(0);
8786

8887
Utils.assertRandomAccessibleEquals(img, (x, y, channel, z, t) -> 1, 1);
8988

@@ -96,7 +95,7 @@ void Check_Int16_Server() throws Exception {
9695
PixelType pixelType = PixelType.INT16;
9796
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
9897

99-
Img<ShortType> img = ImgBuilder.createBuilder(imageServer, new ShortType()).buildForLevel(0);
98+
RandomAccessibleInterval<ShortType> img = ImgBuilder.createBuilder(imageServer, new ShortType()).buildForLevel(0);
10099

101100
Utils.assertRandomAccessibleEquals(img, (x, y, channel, z, t) -> 1, 1);
102101

@@ -109,7 +108,7 @@ void Check_Uint32_Server() throws Exception {
109108
PixelType pixelType = PixelType.UINT32;
110109
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
111110

112-
Img<UnsignedIntType> img = ImgBuilder.createBuilder(imageServer, new UnsignedIntType()).buildForLevel(0);
111+
RandomAccessibleInterval<UnsignedIntType> img = ImgBuilder.createBuilder(imageServer, new UnsignedIntType()).buildForLevel(0);
113112

114113
Utils.assertRandomAccessibleEquals(img, (x, y, channel, z, t) -> 1, 1);
115114

@@ -122,7 +121,7 @@ void Check_Int32_Server() throws Exception {
122121
PixelType pixelType = PixelType.INT32;
123122
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
124123

125-
Img<IntType> img = ImgBuilder.createBuilder(imageServer, new IntType()).buildForLevel(0);
124+
RandomAccessibleInterval<IntType> img = ImgBuilder.createBuilder(imageServer, new IntType()).buildForLevel(0);
126125

127126
Utils.assertRandomAccessibleEquals(img, (x, y, channel, z, t) -> 1, 1);
128127

@@ -135,7 +134,7 @@ void Check_Float32_Server() throws Exception {
135134
PixelType pixelType = PixelType.FLOAT32;
136135
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
137136

138-
Img<FloatType> img = ImgBuilder.createBuilder(imageServer, new FloatType()).buildForLevel(0);
137+
RandomAccessibleInterval<FloatType> img = ImgBuilder.createBuilder(imageServer, new FloatType()).buildForLevel(0);
139138

140139
Utils.assertRandomAccessibleEquals(img, (x, y, channel, z, t) -> 1, 1);
141140

@@ -148,7 +147,7 @@ void Check_Float64_Server() throws Exception {
148147
PixelType pixelType = PixelType.FLOAT64;
149148
ImageServer<BufferedImage> imageServer = new GenericImageServer(isRgb, pixelType);
150149

151-
Img<DoubleType> img = ImgBuilder.createBuilder(imageServer, new DoubleType()).buildForLevel(0);
150+
RandomAccessibleInterval<DoubleType> img = ImgBuilder.createBuilder(imageServer, new DoubleType()).buildForLevel(0);
152151

153152
Utils.assertRandomAccessibleEquals(img, (x, y, channel, z, t) -> 1, 1);
154153

@@ -159,7 +158,7 @@ void Check_Float64_Server() throws Exception {
159158
void Check_X_Dimension_Size() throws Exception {
160159
ImageServer<BufferedImage> imageServer = new ComplexDoubleImageServer();
161160
int expectedSize = imageServer.getWidth();
162-
Img<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
161+
RandomAccessibleInterval<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
163162
int dimensionIndex = ImgBuilder.AXIS_X;
164163

165164
Assertions.assertEquals(expectedSize, img.dimension(dimensionIndex));
@@ -171,7 +170,7 @@ void Check_X_Dimension_Size() throws Exception {
171170
void Check_Y_Dimension_Size() throws Exception {
172171
ImageServer<BufferedImage> imageServer = new ComplexDoubleImageServer();
173172
int expectedSize = imageServer.getHeight();
174-
Img<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
173+
RandomAccessibleInterval<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
175174
int dimensionIndex = ImgBuilder.AXIS_Y;
176175

177176
Assertions.assertEquals(expectedSize, img.dimension(dimensionIndex));
@@ -183,7 +182,7 @@ void Check_Y_Dimension_Size() throws Exception {
183182
void Check_Channel_Dimension_Size() throws Exception {
184183
ImageServer<BufferedImage> imageServer = new ComplexDoubleImageServer();
185184
int expectedSize = imageServer.nChannels();
186-
Img<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
185+
RandomAccessibleInterval<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
187186
int dimensionIndex = ImgBuilder.AXIS_CHANNEL;
188187

189188
Assertions.assertEquals(expectedSize, img.dimension(dimensionIndex));
@@ -195,7 +194,7 @@ void Check_Channel_Dimension_Size() throws Exception {
195194
void Check_Z_Dimension_Size() throws Exception {
196195
ImageServer<BufferedImage> imageServer = new ComplexDoubleImageServer();
197196
int expectedSize = imageServer.getMetadata().getSizeZ();
198-
Img<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
197+
RandomAccessibleInterval<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
199198
int dimensionIndex = ImgBuilder.AXIS_Z;
200199

201200
Assertions.assertEquals(expectedSize, img.dimension(dimensionIndex));
@@ -207,7 +206,7 @@ void Check_Z_Dimension_Size() throws Exception {
207206
void Check_Time_Dimension_Size() throws Exception {
208207
ImageServer<BufferedImage> imageServer = new ComplexDoubleImageServer();
209208
int expectedSize = imageServer.getMetadata().getSizeT();
210-
Img<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
209+
RandomAccessibleInterval<?> img = ImgBuilder.createBuilder(imageServer).buildForLevel(0);
211210
int dimensionIndex = ImgBuilder.AXIS_TIME;
212211

213212
Assertions.assertEquals(expectedSize, img.dimension(dimensionIndex));
@@ -221,7 +220,7 @@ void Check_Pixels_Of_Level_0() throws Exception {
221220
ImageServer<BufferedImage> imageServer = new ComplexDoubleImageServer();
222221
double downsample = imageServer.getDownsampleForResolution(level);
223222

224-
Img<DoubleType> img = ImgBuilder.createBuilder(imageServer, new DoubleType()).buildForLevel(level);
223+
RandomAccessibleInterval<DoubleType> img = ImgBuilder.createBuilder(imageServer, new DoubleType()).buildForLevel(level);
225224

226225
Utils.assertRandomAccessibleEquals(img, ComplexDoubleImageServer::getPixel, downsample);
227226

@@ -234,7 +233,7 @@ void Check_Pixels_Of_Level_1() throws Exception {
234233
ImageServer<BufferedImage> imageServer = new ComplexDoubleImageServer();
235234
double downsample = imageServer.getDownsampleForResolution(level);
236235

237-
Img<DoubleType> img = ImgBuilder.createBuilder(imageServer, new DoubleType()).buildForLevel(level);
236+
RandomAccessibleInterval<DoubleType> img = ImgBuilder.createBuilder(imageServer, new DoubleType()).buildForLevel(level);
238237

239238
Utils.assertRandomAccessibleEquals(img, ComplexDoubleImageServer::getPixel, downsample);
240239

0 commit comments

Comments
 (0)