janelia-flyem / NeuTu

Software package for neuron reconstruction and visualization
Other
38 stars 13 forks source link

ROI visualization is off-by-one #355

Open stuarteberg opened 4 years ago

stuarteberg commented 4 years ago

I think when NeuTu shows an ROI, it gets the border right on the upper/left side, but not on the lower/right side. Here's a screenshot that demonstrates the problem. In this screenshot, segmentation outside the ROI has been erased.

Of course, it's possible that my code which performed the ROI-based segmentation masking is off-by-one, and NeuTu is correct. But I think my test coverage is fairly good here. In any case, I need to figure out if the problem is on my end or NeuTu's.

image

FWIW, here's the dvid documentation for the roi endpoint:

Click for dvid docs ``` GET /node///roi POST /node///roi DEL /node///roi Performs operations on an ROI depending on the HTTP verb. Example: GET /node/3f8c/medulla/roi Returns the data associated with the "medulla" ROI at version 3f8c. If an ROI is currently being created asynchronously, e.g., during an imageblk foreground command, then a HTTP status code 206 (Partial Content) is returned until the ROI is completely stored (HTTP status code 200). The "Content-type" of the HTTP response (and usually the request) are "application/json" for arbitrary binary data. Returns a list of 4-tuples: "[[0, 0, 0, 1], [0, 2, 3, 5], [0, 2, 8, 9], [1, 2, 3, 4]]" Each element is expressed as [z, y, x0, x1], which represents blocks with the block coordinates (x0, y, z) to (x1, y, z). Each block is a chunking of voxel space using the BlockSize for the ROI. Arguments: UUID Hexadecimal string with enough characters to uniquely identify a version node. data name Name of ROI data to save/modify or get. ```