Tensor & depth image value ranges can now be configured, from UI & code#7549
Tensor & depth image value ranges can now be configured, from UI & code#7549
Conversation
…epth image ranges
Deployed docs
|
emilk
left a comment
There was a problem hiding this comment.
Very good!
My only concern is that we don't end up with a bad estimate and then stick with it. In particular, what is the estimated range of an image of a new space view, created when the time cursor is before the image was logged? Maybe it doesn't run the fallback/estimator in that case, and all is good?
crates/store/re_types/definitions/rerun/archetypes/depth_image.fbs
Outdated
Show resolved
Hide resolved
crates/store/re_types/definitions/rerun/blueprint/archetypes/tensor_scalar_mapping.fbs
Outdated
Show resolved
Hide resolved
examples/python/signed_distance_fields/signed_distance_fields/__main__.py
Outdated
Show resolved
Hide resolved
examples/python/signed_distance_fields/signed_distance_fields/__main__.py
Outdated
Show resolved
Hide resolved
examples/python/signed_distance_fields/signed_distance_fields/__main__.py
Outdated
Show resolved
Hide resolved
emilk
left a comment
There was a problem hiding this comment.
Very good!
My only concern is that we don't end up with a bad estimate and then stick with it. In particular, what is the estimated range of an image of a new space view, created when the time cursor is before the image was logged? Maybe it doesn't run the fallback/estimator in that case, and all is good?
The behavior shouldn't have changed to before: If no value is present, we evaluate the fallback and fallbacks are not sticky - they get evaluated every frame. This means that we'll always grab the image stats that are available for that frame and those (other than my change regarding how finite_range is defined) are unchanged to before. Which should give us the same behavior. not 100% sure that answers the question - does it? :) |
|
Oh, perfect answer - thank you! |
…al finite range method
What
Depth images (and their clouds):
depth.image.range.editing.mov
Tensors:
tensor_data_range.mov
Noteworth ripple effects & considerations in this PR:
ValueRangecomponent rather than reusingRange1Dbecause the semantics (and names in the ui) of the later were just too unclearImageInfo, we already didn't use it for hashing it. Having now a range made it even more clear that this doesn't belong therefinite_rangeon tensor & image is now always present, using the datatypes' finite range as fallback. TheNonecase handling was awkward at best and non-existant (error out) usuallyChecklist
mainbuild: rerun.io/viewernightlybuild: rerun.io/viewerCHANGELOG.mdand the migration guideTo run all checks from
main, comment on the PR with@rerun-bot full-check.