@fideus-labs/fidnii 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BufferManager.d.ts.map +1 -1
- package/dist/BufferManager.js +2 -5
- package/dist/BufferManager.js.map +1 -1
- package/dist/ClipPlanes.d.ts.map +1 -1
- package/dist/ClipPlanes.js +11 -15
- package/dist/ClipPlanes.js.map +1 -1
- package/dist/OMEZarrNVImage.d.ts +33 -3
- package/dist/OMEZarrNVImage.d.ts.map +1 -1
- package/dist/OMEZarrNVImage.js +129 -50
- package/dist/OMEZarrNVImage.js.map +1 -1
- package/dist/RegionCoalescer.d.ts.map +1 -1
- package/dist/RegionCoalescer.js +1 -1
- package/dist/RegionCoalescer.js.map +1 -1
- package/dist/ResolutionSelector.d.ts.map +1 -1
- package/dist/ResolutionSelector.js +2 -4
- package/dist/ResolutionSelector.js.map +1 -1
- package/dist/ViewportBounds.d.ts.map +1 -1
- package/dist/ViewportBounds.js +7 -5
- package/dist/ViewportBounds.js.map +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -16
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/affine.d.ts +1 -1
- package/dist/utils/affine.d.ts.map +1 -1
- package/dist/utils/affine.js.map +1 -1
- package/dist/utils/coordinates.d.ts +1 -1
- package/dist/utils/coordinates.d.ts.map +1 -1
- package/dist/utils/coordinates.js.map +1 -1
- package/package.json +1 -1
- package/src/BufferManager.ts +45 -45
- package/src/ClipPlanes.ts +131 -130
- package/src/OMEZarrNVImage.ts +685 -606
- package/src/RegionCoalescer.ts +48 -47
- package/src/ResolutionSelector.ts +66 -67
- package/src/ViewportBounds.ts +120 -118
- package/src/events.ts +36 -35
- package/src/index.ts +59 -69
- package/src/types.ts +95 -94
- package/src/utils/affine.ts +65 -65
- package/src/utils/coordinates.ts +70 -70
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BufferManager.d.ts","sourceRoot":"","sources":["../src/BufferManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAyB,SAAS,EAAE,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"BufferManager.d.ts","sourceRoot":"","sources":["../src/BufferManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAyB,SAAS,EAAE,MAAM,YAAY,CAAA;AAG9E;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IAEjC;;;;;OAKG;gBACS,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS;IAW/C;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU;IA6BxD;;OAEG;IACH,SAAS,IAAI,WAAW;IAIxB;;;;OAIG;IACH,aAAa,IAAI,UAAU;IAQ3B;;OAEG;IACH,aAAa,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAIzC;;OAEG;IACH,aAAa,IAAI,MAAM;IAQvB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACH,QAAQ,IAAI,SAAS;IAIrB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;CAK9D"}
|
package/dist/BufferManager.js
CHANGED
|
@@ -53,11 +53,8 @@ export class BufferManager {
|
|
|
53
53
|
`Proceeding anyway (likely at lowest resolution).`);
|
|
54
54
|
}
|
|
55
55
|
const currentCapacityPixels = this.buffer.byteLength / this.bytesPerPixel;
|
|
56
|
-
const utilizationRatio = currentCapacityPixels > 0
|
|
57
|
-
|
|
58
|
-
: 0;
|
|
59
|
-
const needsReallocation = requiredPixels > currentCapacityPixels ||
|
|
60
|
-
utilizationRatio < 0.25;
|
|
56
|
+
const utilizationRatio = currentCapacityPixels > 0 ? requiredPixels / currentCapacityPixels : 0;
|
|
57
|
+
const needsReallocation = requiredPixels > currentCapacityPixels || utilizationRatio < 0.25;
|
|
61
58
|
if (needsReallocation) {
|
|
62
59
|
// Allocate new buffer
|
|
63
60
|
const newByteLength = requiredPixels * this.bytesPerPixel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BufferManager.js","sourceRoot":"","sources":["../src/BufferManager.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,+BAA+B;AAG/B,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"BufferManager.js","sourceRoot":"","sources":["../src/BufferManager.ts"],"names":[],"mappings":"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"}
|
package/dist/ClipPlanes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipPlanes.d.ts","sourceRoot":"","sources":["../src/ClipPlanes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"ClipPlanes.d.ts","sourceRoot":"","sources":["../src/ClipPlanes.ts"],"names":[],"mappings":"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"}
|
package/dist/ClipPlanes.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
|
-
import { pixelToWorld, worldToPixel } from "./utils/coordinates.js";
|
|
4
3
|
import { getChunkShape, getVolumeShape } from "./ResolutionSelector.js";
|
|
4
|
+
import { pixelToWorld, worldToPixel } from "./utils/coordinates.js";
|
|
5
5
|
/** Maximum number of clip planes supported by NiiVue */
|
|
6
6
|
export const MAX_CLIP_PLANES = 6;
|
|
7
7
|
/**
|
|
@@ -276,7 +276,9 @@ export function clipPlanesToBoundingBox(clipPlanes, volumeBounds) {
|
|
|
276
276
|
maxX = Math.min(maxX, point[0]);
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
else if (absNy > 1 - tolerance &&
|
|
279
|
+
else if (absNy > 1 - tolerance &&
|
|
280
|
+
absNx < tolerance &&
|
|
281
|
+
absNz < tolerance) {
|
|
280
282
|
// Y-aligned plane
|
|
281
283
|
if (normal[1] > 0) {
|
|
282
284
|
minY = Math.max(minY, point[1]);
|
|
@@ -285,7 +287,9 @@ export function clipPlanesToBoundingBox(clipPlanes, volumeBounds) {
|
|
|
285
287
|
maxY = Math.min(maxY, point[1]);
|
|
286
288
|
}
|
|
287
289
|
}
|
|
288
|
-
else if (absNz > 1 - tolerance &&
|
|
290
|
+
else if (absNz > 1 - tolerance &&
|
|
291
|
+
absNx < tolerance &&
|
|
292
|
+
absNy < tolerance) {
|
|
289
293
|
// Z-aligned plane
|
|
290
294
|
if (normal[2] > 0) {
|
|
291
295
|
minZ = Math.max(minZ, point[2]);
|
|
@@ -323,16 +327,8 @@ export function clipPlanesToBoundingBox(clipPlanes, volumeBounds) {
|
|
|
323
327
|
}
|
|
324
328
|
// Ensure valid bounds (min <= max)
|
|
325
329
|
return {
|
|
326
|
-
min: [
|
|
327
|
-
|
|
328
|
-
Math.min(minY, maxY),
|
|
329
|
-
Math.min(minZ, maxZ),
|
|
330
|
-
],
|
|
331
|
-
max: [
|
|
332
|
-
Math.max(minX, maxX),
|
|
333
|
-
Math.max(minY, maxY),
|
|
334
|
-
Math.max(minZ, maxZ),
|
|
335
|
-
],
|
|
330
|
+
min: [Math.min(minX, maxX), Math.min(minY, maxY), Math.min(minZ, maxZ)],
|
|
331
|
+
max: [Math.max(minX, maxX), Math.max(minY, maxY), Math.max(minZ, maxZ)],
|
|
336
332
|
};
|
|
337
333
|
}
|
|
338
334
|
/**
|
|
@@ -494,13 +490,13 @@ export function validateClipPlanes(clipPlanes) {
|
|
|
494
490
|
// Check point is valid
|
|
495
491
|
if (!Array.isArray(plane.point) ||
|
|
496
492
|
plane.point.length !== 3 ||
|
|
497
|
-
plane.point.some((v) => typeof v !== "number" || !isFinite(v))) {
|
|
493
|
+
plane.point.some((v) => typeof v !== "number" || !Number.isFinite(v))) {
|
|
498
494
|
throw new Error(`Invalid point in clip plane ${i}`);
|
|
499
495
|
}
|
|
500
496
|
// Check normal is valid
|
|
501
497
|
if (!Array.isArray(plane.normal) ||
|
|
502
498
|
plane.normal.length !== 3 ||
|
|
503
|
-
plane.normal.some((v) => typeof v !== "number" || !isFinite(v))) {
|
|
499
|
+
plane.normal.some((v) => typeof v !== "number" || !Number.isFinite(v))) {
|
|
504
500
|
throw new Error(`Invalid normal in clip plane ${i}`);
|
|
505
501
|
}
|
|
506
502
|
// Check normal is not zero
|
package/dist/ClipPlanes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipPlanes.js","sourceRoot":"","sources":["../src/ClipPlanes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClipPlanes.js","sourceRoot":"","sources":["../src/ClipPlanes.ts"],"names":[],"mappings":"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"}
|
package/dist/OMEZarrNVImage.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { NVImage } from "@niivue/niivue";
|
|
2
|
-
import type { Niivue } from "@niivue/niivue";
|
|
3
1
|
import type { Multiscales, Omero } from "@fideus-labs/ngff-zarr";
|
|
2
|
+
import type { Niivue } from "@niivue/niivue";
|
|
3
|
+
import { NVImage } from "@niivue/niivue";
|
|
4
|
+
import { type OMEZarrNVImageEventListener, type OMEZarrNVImageEventListenerOptions, type OMEZarrNVImageEventMap, type PopulateTrigger } from "./events.js";
|
|
4
5
|
import type { ClipPlane, ClipPlanes, OMEZarrNVImageOptions, SlabBufferState, SlabSliceType, VolumeBounds } from "./types.js";
|
|
5
|
-
import { OMEZarrNVImageEventListener, OMEZarrNVImageEventListenerOptions, OMEZarrNVImageEventMap, PopulateTrigger } from "./events.js";
|
|
6
6
|
/**
|
|
7
7
|
* OMEZarrNVImage extends NVImage to support rendering OME-Zarr images in NiiVue.
|
|
8
8
|
*
|
|
@@ -18,6 +18,14 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
18
18
|
readonly multiscales: Multiscales;
|
|
19
19
|
/** Maximum number of pixels to use */
|
|
20
20
|
readonly maxPixels: number;
|
|
21
|
+
/**
|
|
22
|
+
* True when `multiscales.method` is `Methods.ITKWASM_LABEL_IMAGE`.
|
|
23
|
+
*
|
|
24
|
+
* Label images are rendered with a discrete colormap
|
|
25
|
+
* (`setColormapLabel()`) instead of a continuous colormap, and
|
|
26
|
+
* OMERO intensity windowing is skipped.
|
|
27
|
+
*/
|
|
28
|
+
readonly isLabelImage: boolean;
|
|
21
29
|
/** Reference to NiiVue instance */
|
|
22
30
|
private readonly niivue;
|
|
23
31
|
/** Buffer manager for dynamically-sized pixel data */
|
|
@@ -177,6 +185,17 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
177
185
|
* This sets the display intensity range for NiiVue rendering.
|
|
178
186
|
*/
|
|
179
187
|
private applyOmeroToHeader;
|
|
188
|
+
/**
|
|
189
|
+
* Build and apply a discrete NiiVue label colormap to an NVImage.
|
|
190
|
+
*
|
|
191
|
+
* Scans the pixel data for unique integer values and assigns each a
|
|
192
|
+
* distinct color from the Glasbey palette (via `@fideus-labs/ngff-zarr`).
|
|
193
|
+
* Label 0 is treated as background (fully transparent).
|
|
194
|
+
*
|
|
195
|
+
* @param nvImage - The NVImage to apply the label colormap to
|
|
196
|
+
* @param data - The pixel data to scan for unique labels
|
|
197
|
+
*/
|
|
198
|
+
private _applyLabelColormap;
|
|
180
199
|
/**
|
|
181
200
|
* Ensure OMERO metadata is available and applied.
|
|
182
201
|
*
|
|
@@ -260,6 +279,17 @@ export declare class OMEZarrNVImage extends NVImage {
|
|
|
260
279
|
* Get the number of resolution levels.
|
|
261
280
|
*/
|
|
262
281
|
getNumLevels(): number;
|
|
282
|
+
/**
|
|
283
|
+
* Load a specific resolution level.
|
|
284
|
+
*
|
|
285
|
+
* Overrides the automatic `maxPixels`-based level selection and loads the
|
|
286
|
+
* requested level directly. The preview step is skipped because the caller
|
|
287
|
+
* has explicitly chosen a level.
|
|
288
|
+
*
|
|
289
|
+
* @param levelIndex - Zero-based resolution level (0 = highest resolution)
|
|
290
|
+
* @throws If `levelIndex` is out of range
|
|
291
|
+
*/
|
|
292
|
+
loadLevel(levelIndex: number): Promise<void>;
|
|
263
293
|
/**
|
|
264
294
|
* Get the volume bounds in world space.
|
|
265
295
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OMEZarrNVImage.d.ts","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OMEZarrNVImage.d.ts","sourceRoot":"","sources":["../src/OMEZarrNVImage.ts"],"names":[],"mappings":"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"}
|
package/dist/OMEZarrNVImage.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: Copyright (c) Fideus Labs LLC
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
|
-
import {
|
|
3
|
+
import { Methods } from "@fideus-labs/ngff-zarr";
|
|
4
|
+
import { computeOmeroFromNgffImage, GLASBEY_COLORS, } from "@fideus-labs/ngff-zarr/browser";
|
|
4
5
|
import { NVImage, SLICE_TYPE } from "@niivue/niivue";
|
|
5
|
-
import { computeOmeroFromNgffImage } from "@fideus-labs/ngff-zarr/browser";
|
|
6
6
|
import { LRUCache } from "lru-cache";
|
|
7
|
-
import {
|
|
7
|
+
import { NIFTI1 } from "nifti-reader-js";
|
|
8
8
|
import { BufferManager } from "./BufferManager.js";
|
|
9
|
+
import { alignToChunks, clipPlanesToNiivue, clipPlanesToPixelRegion, createDefaultClipPlanes, MAX_CLIP_PLANES, normalizeVector, validateClipPlanes, } from "./ClipPlanes.js";
|
|
10
|
+
import { OMEZarrNVImageEvent, } from "./events.js";
|
|
9
11
|
import { RegionCoalescer } from "./RegionCoalescer.js";
|
|
10
12
|
import { getChunkShape, getVolumeShape, select2DResolution, selectResolution, } from "./ResolutionSelector.js";
|
|
11
|
-
import {
|
|
13
|
+
import { getBytesPerPixel, getNiftiDataType, parseZarritaDtype, } from "./types.js";
|
|
12
14
|
import { affineToNiftiSrows, calculateWorldBounds, createAffineFromNgffImage, } from "./utils/affine.js";
|
|
13
15
|
import { worldToPixel } from "./utils/coordinates.js";
|
|
14
16
|
import { boundsApproxEqual, computeViewportBounds2D, computeViewportBounds3D, } from "./ViewportBounds.js";
|
|
15
|
-
import { OMEZarrNVImageEvent, } from "./events.js";
|
|
16
17
|
const DEFAULT_MAX_PIXELS = 50_000_000;
|
|
17
18
|
const DEFAULT_MAX_CACHE_ENTRIES = 200;
|
|
18
19
|
/**
|
|
@@ -30,6 +31,14 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
30
31
|
multiscales;
|
|
31
32
|
/** Maximum number of pixels to use */
|
|
32
33
|
maxPixels;
|
|
34
|
+
/**
|
|
35
|
+
* True when `multiscales.method` is `Methods.ITKWASM_LABEL_IMAGE`.
|
|
36
|
+
*
|
|
37
|
+
* Label images are rendered with a discrete colormap
|
|
38
|
+
* (`setColormapLabel()`) instead of a continuous colormap, and
|
|
39
|
+
* OMERO intensity windowing is skipped.
|
|
40
|
+
*/
|
|
41
|
+
isLabelImage;
|
|
33
42
|
/** Reference to NiiVue instance */
|
|
34
43
|
niivue;
|
|
35
44
|
/** Buffer manager for dynamically-sized pixel data */
|
|
@@ -123,6 +132,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
123
132
|
super();
|
|
124
133
|
this.multiscales = options.multiscales;
|
|
125
134
|
this.maxPixels = options.maxPixels ?? DEFAULT_MAX_PIXELS;
|
|
135
|
+
this.isLabelImage = this.multiscales.method === Methods.ITKWASM_LABEL_IMAGE;
|
|
126
136
|
this.niivue = options.niivue;
|
|
127
137
|
this.clipPlaneDebounceMs = options.clipPlaneDebounceMs ?? 300;
|
|
128
138
|
// Initialize chunk cache: user-provided > LRU(maxCacheEntries) > disabled
|
|
@@ -221,8 +231,10 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
221
231
|
// Initialize with empty typed array (will be replaced when data loads)
|
|
222
232
|
// We need at least 1 element to avoid issues
|
|
223
233
|
this.img = this.bufferManager.resize([1, 1, 1]);
|
|
224
|
-
// Set default colormap
|
|
225
|
-
this.
|
|
234
|
+
// Set default colormap (label images use setColormapLabel() instead)
|
|
235
|
+
if (!this.isLabelImage) {
|
|
236
|
+
this._colormap = "gray";
|
|
237
|
+
}
|
|
226
238
|
this._opacity = 1.0;
|
|
227
239
|
}
|
|
228
240
|
/**
|
|
@@ -361,8 +373,14 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
361
373
|
this.img = this.bufferManager.getTypedArray();
|
|
362
374
|
// Update NVImage header with correct dimensions and transforms
|
|
363
375
|
this.updateHeaderForRegion(ngffImage, alignedRegion, fetchedShape);
|
|
364
|
-
|
|
365
|
-
|
|
376
|
+
if (this.isLabelImage) {
|
|
377
|
+
// Label images: apply a discrete colormap instead of OMERO windowing
|
|
378
|
+
this._applyLabelColormap(this, result.data);
|
|
379
|
+
}
|
|
380
|
+
else {
|
|
381
|
+
// Compute or apply OMERO metadata for cal_min/cal_max
|
|
382
|
+
await this.ensureOmeroMetadata(ngffImage, levelIndex);
|
|
383
|
+
}
|
|
366
384
|
// Reset global_min so NiiVue's refreshLayers() re-runs calMinMax() on real data.
|
|
367
385
|
// Without this, if calMinMax() was previously called on placeholder/empty data
|
|
368
386
|
// (e.g., when setting colormap before loading), global_min would already be set
|
|
@@ -373,12 +391,14 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
373
391
|
this.updateNiivueClipPlanes();
|
|
374
392
|
// Refresh NiiVue
|
|
375
393
|
this.niivue.updateGLVolume();
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
394
|
+
if (!this.isLabelImage) {
|
|
395
|
+
// Widen the display window if actual data exceeds the OMERO range.
|
|
396
|
+
// At higher resolutions, individual bright/dark voxels that were averaged
|
|
397
|
+
// out at lower resolutions can exceed the OMERO-specified window, causing
|
|
398
|
+
// clipping artifacts. This preserves the OMERO lower bound but widens the
|
|
399
|
+
// ceiling to encompass the full data range when needed.
|
|
400
|
+
this._widenCalRangeIfNeeded(this);
|
|
401
|
+
}
|
|
382
402
|
// Emit loadingComplete event
|
|
383
403
|
this._emitEvent("loadingComplete", {
|
|
384
404
|
levelIndex,
|
|
@@ -429,12 +449,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
429
449
|
affine[14] += regionStart[0] * sz; // z offset
|
|
430
450
|
// Update affine in header
|
|
431
451
|
const srows = affineToNiftiSrows(affine);
|
|
432
|
-
this.hdr.affine = [
|
|
433
|
-
srows.srow_x,
|
|
434
|
-
srows.srow_y,
|
|
435
|
-
srows.srow_z,
|
|
436
|
-
[0, 0, 0, 1],
|
|
437
|
-
];
|
|
452
|
+
this.hdr.affine = [srows.srow_x, srows.srow_y, srows.srow_z, [0, 0, 0, 1]];
|
|
438
453
|
// Update current buffer bounds
|
|
439
454
|
// Buffer starts at region.chunkAlignedStart and has extent fetchedShape
|
|
440
455
|
this._currentBufferBounds = {
|
|
@@ -494,6 +509,48 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
494
509
|
this.hdr.cal_max = calMax;
|
|
495
510
|
}
|
|
496
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* Build and apply a discrete NiiVue label colormap to an NVImage.
|
|
514
|
+
*
|
|
515
|
+
* Scans the pixel data for unique integer values and assigns each a
|
|
516
|
+
* distinct color from the Glasbey palette (via `@fideus-labs/ngff-zarr`).
|
|
517
|
+
* Label 0 is treated as background (fully transparent).
|
|
518
|
+
*
|
|
519
|
+
* @param nvImage - The NVImage to apply the label colormap to
|
|
520
|
+
* @param data - The pixel data to scan for unique labels
|
|
521
|
+
*/
|
|
522
|
+
_applyLabelColormap(nvImage, data) {
|
|
523
|
+
const uniqueLabels = [...new Set(data)].sort((a, b) => a - b);
|
|
524
|
+
const R = [];
|
|
525
|
+
const G = [];
|
|
526
|
+
const B = [];
|
|
527
|
+
const A = [];
|
|
528
|
+
const I = [];
|
|
529
|
+
const labels = [];
|
|
530
|
+
for (let i = 0; i < uniqueLabels.length; i++) {
|
|
531
|
+
const label = uniqueLabels[i];
|
|
532
|
+
I.push(label);
|
|
533
|
+
if (label === 0) {
|
|
534
|
+
// Background: transparent
|
|
535
|
+
R.push(0);
|
|
536
|
+
G.push(0);
|
|
537
|
+
B.push(0);
|
|
538
|
+
A.push(0);
|
|
539
|
+
labels.push("background");
|
|
540
|
+
}
|
|
541
|
+
else {
|
|
542
|
+
// Use Glasbey color palette (cycling if >256 labels)
|
|
543
|
+
const hex = GLASBEY_COLORS[(i - 1) % GLASBEY_COLORS.length] ?? "FFFFFF";
|
|
544
|
+
R.push(parseInt(hex.slice(0, 2), 16));
|
|
545
|
+
G.push(parseInt(hex.slice(2, 4), 16));
|
|
546
|
+
B.push(parseInt(hex.slice(4, 6), 16));
|
|
547
|
+
A.push(255);
|
|
548
|
+
labels.push(String(label));
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
// NiiVue's setColormapLabel expects a ColorMap-shaped object
|
|
552
|
+
nvImage.setColormapLabel({ R, G, B, A, I, labels });
|
|
553
|
+
}
|
|
497
554
|
/**
|
|
498
555
|
* Ensure OMERO metadata is available and applied.
|
|
499
556
|
*
|
|
@@ -522,8 +579,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
522
579
|
const isPreviewLevel = levelIndex === lowestLevel;
|
|
523
580
|
const isTargetLevel = levelIndex === this.targetLevelIndex;
|
|
524
581
|
const needsCompute = isPreviewLevel ||
|
|
525
|
-
(isTargetLevel &&
|
|
526
|
-
this._omeroComputedForLevel !== this.targetLevelIndex);
|
|
582
|
+
(isTargetLevel && this._omeroComputedForLevel !== this.targetLevelIndex);
|
|
527
583
|
if (needsCompute) {
|
|
528
584
|
const computedOmero = await computeOmeroFromNgffImage(ngffImage);
|
|
529
585
|
this._omero = computedOmero;
|
|
@@ -604,7 +660,8 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
604
660
|
// Volume reduced → allow higher resolution (lower level index)
|
|
605
661
|
newTargetLevel = selection.levelIndex;
|
|
606
662
|
}
|
|
607
|
-
else if (volumeIncreased &&
|
|
663
|
+
else if (volumeIncreased &&
|
|
664
|
+
selection.levelIndex > this.targetLevelIndex) {
|
|
608
665
|
// Volume increased → allow lower resolution (higher level index) if needed to fit
|
|
609
666
|
newTargetLevel = selection.levelIndex;
|
|
610
667
|
}
|
|
@@ -704,6 +761,24 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
704
761
|
getNumLevels() {
|
|
705
762
|
return this.multiscales.images.length;
|
|
706
763
|
}
|
|
764
|
+
/**
|
|
765
|
+
* Load a specific resolution level.
|
|
766
|
+
*
|
|
767
|
+
* Overrides the automatic `maxPixels`-based level selection and loads the
|
|
768
|
+
* requested level directly. The preview step is skipped because the caller
|
|
769
|
+
* has explicitly chosen a level.
|
|
770
|
+
*
|
|
771
|
+
* @param levelIndex - Zero-based resolution level (0 = highest resolution)
|
|
772
|
+
* @throws If `levelIndex` is out of range
|
|
773
|
+
*/
|
|
774
|
+
async loadLevel(levelIndex) {
|
|
775
|
+
const numLevels = this.multiscales.images.length;
|
|
776
|
+
if (levelIndex < 0 || levelIndex >= numLevels) {
|
|
777
|
+
throw new Error(`levelIndex ${levelIndex} out of range [0, ${numLevels - 1}]`);
|
|
778
|
+
}
|
|
779
|
+
this.targetLevelIndex = levelIndex;
|
|
780
|
+
await this.populateVolume(true, "initial");
|
|
781
|
+
}
|
|
707
782
|
/**
|
|
708
783
|
* Get the volume bounds in world space.
|
|
709
784
|
*/
|
|
@@ -847,7 +922,10 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
847
922
|
state.zoomOverrideAbortController = controller;
|
|
848
923
|
nv.canvas.addEventListener("wheel", (e) => {
|
|
849
924
|
// Convert mouse position to DPR-scaled canvas coordinates
|
|
850
|
-
const
|
|
925
|
+
const canvas = nv.canvas;
|
|
926
|
+
if (!canvas)
|
|
927
|
+
return;
|
|
928
|
+
const rect = canvas.getBoundingClientRect();
|
|
851
929
|
const dpr = nv.uiData.dpr ?? 1;
|
|
852
930
|
const x = (e.clientX - rect.left) * dpr;
|
|
853
931
|
const y = (e.clientY - rect.top) * dpr;
|
|
@@ -1128,8 +1206,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1128
1206
|
nv,
|
|
1129
1207
|
currentSliceType: this._detectSliceType(nv),
|
|
1130
1208
|
previousOnLocationChange: nv.onLocationChange,
|
|
1131
|
-
previousOnOptsChange: nv
|
|
1132
|
-
.onOptsChange,
|
|
1209
|
+
previousOnOptsChange: nv.onOptsChange,
|
|
1133
1210
|
};
|
|
1134
1211
|
// Hook onOptsChange to detect slice type changes
|
|
1135
1212
|
nv.onOptsChange = (propertyName, newValue, oldValue) => {
|
|
@@ -1177,8 +1254,8 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1177
1254
|
this._unhookZoomOverride(nv, state);
|
|
1178
1255
|
// Restore original callbacks
|
|
1179
1256
|
nv.onLocationChange = state.previousOnLocationChange ?? (() => { });
|
|
1180
|
-
nv.onOptsChange =
|
|
1181
|
-
(
|
|
1257
|
+
nv.onOptsChange = (state.previousOnOptsChange ??
|
|
1258
|
+
(() => { }));
|
|
1182
1259
|
this._attachedNiivues.delete(nv);
|
|
1183
1260
|
}
|
|
1184
1261
|
/**
|
|
@@ -1205,9 +1282,9 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1205
1282
|
// Access the opts.sliceType via the scene data or fall back to checking
|
|
1206
1283
|
// the convenience properties. Niivue stores the current sliceType in opts.
|
|
1207
1284
|
// We can read it from the NV instance's internal opts.
|
|
1208
|
-
const
|
|
1209
|
-
if (
|
|
1210
|
-
return
|
|
1285
|
+
const { sliceType } = nv.opts;
|
|
1286
|
+
if (typeof sliceType === "number") {
|
|
1287
|
+
return sliceType;
|
|
1211
1288
|
}
|
|
1212
1289
|
// Default to Render
|
|
1213
1290
|
return SLICE_TYPE.RENDER;
|
|
@@ -1275,11 +1352,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1275
1352
|
return;
|
|
1276
1353
|
let worldCoord;
|
|
1277
1354
|
try {
|
|
1278
|
-
const mm = nv.frac2mm([
|
|
1279
|
-
crosshairPos[0],
|
|
1280
|
-
crosshairPos[1],
|
|
1281
|
-
crosshairPos[2],
|
|
1282
|
-
]);
|
|
1355
|
+
const mm = nv.frac2mm([crosshairPos[0], crosshairPos[1], crosshairPos[2]]);
|
|
1283
1356
|
// frac2mm returns values in the slab NVImage's normalized mm space
|
|
1284
1357
|
// (world * normalizationScale). Convert back to physical world.
|
|
1285
1358
|
const ns = slabState.normalizationScale;
|
|
@@ -1383,7 +1456,9 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1383
1456
|
hdr.sform_code = 1;
|
|
1384
1457
|
nvImage.name = `${this.name ?? "OME-Zarr"} [${SLICE_TYPE[sliceType]}]`;
|
|
1385
1458
|
nvImage.img = bufferManager.resize([1, 1, 1]);
|
|
1386
|
-
|
|
1459
|
+
if (!this.isLabelImage) {
|
|
1460
|
+
nvImage._colormap = "gray";
|
|
1461
|
+
}
|
|
1387
1462
|
nvImage._opacity = 1.0;
|
|
1388
1463
|
// Select initial resolution using 2D pixel budget
|
|
1389
1464
|
const orthAxis = this._getOrthogonalAxis(sliceType);
|
|
@@ -1480,8 +1555,7 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1480
1555
|
try {
|
|
1481
1556
|
const orthAxis = this._getOrthogonalAxis(sliceType);
|
|
1482
1557
|
// Recompute target resolution using 2D pixel budget with per-slab viewport bounds
|
|
1483
|
-
const slabViewportBounds = this._viewportBoundsPerSlab.get(sliceType) ??
|
|
1484
|
-
undefined;
|
|
1558
|
+
const slabViewportBounds = this._viewportBoundsPerSlab.get(sliceType) ?? undefined;
|
|
1485
1559
|
const selection = select2DResolution(this.multiscales, this.maxPixels, this._clipPlanes, this._volumeBounds, orthAxis, slabViewportBounds);
|
|
1486
1560
|
slabState.targetLevelIndex = selection.levelIndex;
|
|
1487
1561
|
const numLevels = this.multiscales.images.length;
|
|
@@ -1584,14 +1658,19 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1584
1658
|
// Resize buffer and copy data
|
|
1585
1659
|
const targetData = slabState.bufferManager.resize(fetchedShape);
|
|
1586
1660
|
targetData.set(result.data);
|
|
1587
|
-
slabState.nvImage.img =
|
|
1661
|
+
slabState.nvImage.img =
|
|
1662
|
+
slabState.bufferManager.getTypedArray();
|
|
1588
1663
|
// Update slab position tracking
|
|
1589
1664
|
slabState.slabStart = slabStart;
|
|
1590
1665
|
slabState.slabEnd = slabEnd;
|
|
1591
1666
|
// Update the NVImage header for this slab region
|
|
1592
1667
|
this._updateSlabHeader(slabState.nvImage, ngffImage, fetchStart, fetchEnd, fetchedShape);
|
|
1593
|
-
|
|
1594
|
-
|
|
1668
|
+
if (this.isLabelImage) {
|
|
1669
|
+
// Label images: apply discrete colormap to the slab NVImage
|
|
1670
|
+
this._applyLabelColormap(slabState.nvImage, result.data);
|
|
1671
|
+
}
|
|
1672
|
+
else if (this._omero) {
|
|
1673
|
+
// Apply OMERO metadata if available
|
|
1595
1674
|
this._applyOmeroToSlabHeader(slabState.nvImage);
|
|
1596
1675
|
}
|
|
1597
1676
|
// Reset global_min so NiiVue recalculates intensity ranges
|
|
@@ -1614,9 +1693,11 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1614
1693
|
// Ensure this NV has the slab volume
|
|
1615
1694
|
if (attachedNv.volumes.includes(slabState.nvImage)) {
|
|
1616
1695
|
attachedNv.updateGLVolume();
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1696
|
+
if (!this.isLabelImage) {
|
|
1697
|
+
// Widen the display window if actual data exceeds the OMERO range.
|
|
1698
|
+
// Must run after updateGLVolume() which computes global_min/global_max.
|
|
1699
|
+
this._widenCalRangeIfNeeded(slabState.nvImage);
|
|
1700
|
+
}
|
|
1620
1701
|
// Position the crosshair at the correct slice within this slab.
|
|
1621
1702
|
// Without this, NiiVue defaults to the center of the slab which
|
|
1622
1703
|
// corresponds to different physical positions at each resolution level.
|
|
@@ -1732,13 +1813,11 @@ export class OMEZarrNVImage extends NVImage {
|
|
|
1732
1813
|
// actual data extremes (global_min/global_max) at this resolution level.
|
|
1733
1814
|
// The hdr values are NOT modified so the original OMERO window is
|
|
1734
1815
|
// preserved for next reload.
|
|
1735
|
-
if (nvImage.cal_max !== undefined &&
|
|
1736
|
-
nvImage.global_max > nvImage.cal_max) {
|
|
1816
|
+
if (nvImage.cal_max !== undefined && nvImage.global_max > nvImage.cal_max) {
|
|
1737
1817
|
nvImage.cal_max = nvImage.global_max;
|
|
1738
1818
|
widened = true;
|
|
1739
1819
|
}
|
|
1740
|
-
if (nvImage.cal_min !== undefined &&
|
|
1741
|
-
nvImage.global_min < nvImage.cal_min) {
|
|
1820
|
+
if (nvImage.cal_min !== undefined && nvImage.global_min < nvImage.cal_min) {
|
|
1742
1821
|
nvImage.cal_min = nvImage.global_min;
|
|
1743
1822
|
widened = true;
|
|
1744
1823
|
}
|