Open janpaul123 opened 1 year ago
Just to expand on this a little bit, there are some similar features that exist and which have been discussed which might also help here:
Whenever you run vc_render
, it adds a render graph to the .volpkg
in the renders
directory and reports the ID number for the graph on the command line. This render graph directory stores all of the parameters, metadata, and intermediate data structures used to generate the final, rendered output. At a minimum this provides reproducibility, but it was also intended to be expanded so that you could clone a graph, make modifications, and see the results of your modification without recomputing everything from scratch. We could add this behavior to vc_render
, though I admit that the command-line interface might get a bit hairy. Maybe a graph pipeline GUI? Anyway, I think this existing feature could be expanded to fit the essence of the request. We're already storing the settings used, so how do we make it possible to easily rerun them?
By the by, you can see what a render graph looks like using the vc_visualize_graph
tool and graphviz:
vc_visualize_graph -v Foo.volpkg -r 20230905213619 -s educelab -o graph.gv
dot -Tpng -o graph.png graph.gv
This doesn't solve the entire reproducibility problem, but we can do better about auto-orienting our flattened segmentations in a more consistent way. We have Landmark
classes in vc::core
that were meant to serve as feature-of-interest annotations, but they never got integrated into the VolumePkg interface. One of their intended uses was to provide reference frames for some future auto-orientation code (e.g. the top of the image should be in the direction of the "top of the scroll" marker in the volume). I believe I discussed this in the Discord with someone once, but I don't know what ever came of it.
What problem is your feature request solving?
It's inconvenient to keep a list of vc_render params for each separate segment, to rotate / flip the segment into an orientation in which text is readable.
What is your feature request?
It would be nice if you can specify params in the JSON file for each segment, and have vc_render use those params as a default. That way you can easily run vc_render on all segments (e.g.
for f in paths/; do vc_render …
) and have all the outputs be oriented properly.What alternative solutions have you considered?
Keeping a separate list of flags for vc_render for each segment. Or a separate file that contains the flags or so.
Is there anything else we should know that wasn't included already?
Not super high priority, just something nice to consider.
Are you proposing to work on this feature yourself?
Code of Conduct