Module imagery.analysis.execution
Run an image operation on regions and tiles.
Use parallelTiles when an operation needs neighboring pixels. The callback
receives a tile to read and the smaller core region to publish.
Example
parallelTiles((tile) @safe nothrow {
// process tile.halo, publish tile.core
return true;
}, 1920, 1080, 512, 512, neighbourhoodHalo(1), 4);
Functions
| Name | Description |
|---|---|
copyRoi(p, roi, destination)
|
Copies a strided ROI into a dense plane. The caller supplies element size
through T; no allocation or ownership is hidden by the contract.
|
foreachTile(emit, width, height, tileWidth, tileHeight, halo)
|
Enumerates a deterministic row-major partition. core is the portion to
publish; halo is the read window required by neighbourhood kernels.
|
isUsable(validity, alpha, index, minimumAlpha)
|
Combines an optional validity plane and alpha plane. Alpha is normalized to [0,1]; NoData always wins over alpha. |
parallelTiles(emit, width, height, tileWidth, tileHeight, halo, workerLimit, minimumRowChunk)
|
Bounded parallel tile traversal. Tiles in each row band are processed by the caller callback; completion is a full barrier before return. |
tryOffset(p, x, y, offset)
|
Returns the byte/element offset for a local coordinate, after bounds check. |