Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:21

    tinevez on ctc-export

    Make the SpotWriters of the lab… An action to export a TrackMate… Test drive for the CTC exporter. (compare)

  • Dec 04 18:06
    imagesc-bot commented #303
  • Dec 04 18:06
    imagesc-bot commented #31
  • Dec 04 18:06
    imagesc-bot commented #302
  • Dec 04 18:06
    imagesc-bot commented #429
  • Dec 04 18:05
    ctrueden labeled #429
  • Dec 04 18:05
    ctrueden milestoned #429
  • Dec 04 18:05
    ctrueden opened #429
  • Dec 03 16:34

    tinevez on master

    Fix pruning of spots by ROI for… Fix remanent ROI in settings. (compare)

  • Dec 03 02:45
    melloware closed #31
  • Dec 02 20:43
    imagesc-bot commented #300
  • Dec 02 20:42
    etadobson assigned #300
  • Dec 02 20:42
    etadobson opened #300
  • Dec 02 20:26
    imagesc-bot commented #179
  • Dec 02 20:02

    tinevez on master

    Typo in the doc. (compare)

  • Dec 01 19:25
    ksugar commented #142
  • Dec 01 19:16
    tinevez commented #142
  • Dec 01 18:27
    ksugar opened #142
  • Dec 01 09:29

    tinevez on PIV_analyser-2.0.0

    [maven-release-plugin] prepare … (compare)

  • Dec 01 09:29

    tinevez on master

    Update parent pom to pom-scijav… Use VersionUtils to report true… Update license blurbs. and 1 more (compare)

NicoKiaru
@NicoKiaru
Hum, I have AbstractSpimData
Curtis Rueden
@ctrueden
Oh, I see, basePath is not what you want.
NicoKiaru
@NicoKiaru
Because it can be SpimData or SpimData2
Indeed
Curtis Rueden
@ctrueden
And the I/O code throws away the filename. Ouch.
Tobias Pietzsch
@tpietzsch
@NicoKiaru What do you need the xml path for?
We could add it
It would be optional however
NicoKiaru
@NicoKiaru
It's again along the line of communicating objects within scijava commands
Tobias Pietzsch
@tpietzsch
There are instances where SpimData is not constructed from XML
If you want to make a PR, you can add it to AbstractSpimData
NicoKiaru
@NicoKiaru
Let's say you have a command which adds interest points - using sift for instance. You want to get the spimdata object, add interest points, and then potentially resave the xml file
Tobias Pietzsch
@tpietzsch
Would be set when reading a SpimData through XmlIoAbstractSpimData
Otherwise it would be null
Maybe it would be also set, if you save the SpimData to a (different) XML file
but that already gets interesting
NicoKiaru
@NicoKiaru
oki doc. Maybe another option is to add an abstract save or resave method to spimdata ? Would that make sense ? The default behaviour would be what you describe. But I'm not familiar with use cases other than the simple ones. I do not want to add a dirty patch which turns out to be annoying.
Tobias Pietzsch
@tpietzsch
I'm not sure how that would play with extensibility
AbstractSpimData and XmlIoAbstractSpimData play together somehow
and then SpimDataMinimal, XmlIoSpimDataMinimal, etc
I wouldn't do it
But potentially you could make a wrapper around a SpimData and a XmlIo that has these methods and keeps the filename
(then we need to make sure, that the default spimdatas in Fiji always are loaded in a way that they have the wrapper)
something like that?
NicoKiaru
@NicoKiaru
yep. Ok. For now I will not touch anything, and keep things the way they are. I'll let the user define the dataset name, and with the Parameter being persistent, it's not complicated : if he wants to resave and erase the previous dataset, he lets the same name, and if he wants to avoid erasing the dataset, he changes the name - another dataset is created.
Not ideal, because this dataset name is not transfered from one Command to another. I'll investigate more your advice when required. Thanks a lot !
Tobias Pietzsch
@tpietzsch
Maybe you can just make a static Map< SpimData, String (with weak keys)
or attach that association to the Context somehow?
Curtis Rueden
@ctrueden
There is a CacheService backed by a weak hash map, into which you can put that stuff.
Tobias Pietzsch
@tpietzsch
👍
NicoKiaru
@NicoKiaru
I realized I have another related issue. Suppose I call BdvFunctions.show(mySpimData);. If I update a viewRegistration in the mySpimData object, can I update what is displayed in the bdv window ? Should I close it and reopen it ? thanks!
Tobias Pietzsch
@tpietzsch
In practice, it is enough to move to a different timepoint and back to make the transforms reload from the mySpimData
But that is more an implementation detail of the current sources
(but pretty reliable)
otherwise: BdvFunctions.show(mySpimData); returns a List<BdvStackSource<?>>
you can use the BdvSource.removeFromBdv() for each of the BdvStackSource and then use BdvFunctions.show(mySpimData, Bdv.options().addTo(...)); to add them again
NicoKiaru
@NicoKiaru
Ok, since I'm working with 2d slice scanners file, there's no (or a single) timepoint. I'll try the other option.
Tobias Pietzsch
@tpietzsch
Depending on whether its a window or just a panel:
the window will probably close when all sources are removed
so maybe BdvFunctions.show(mySpimData, Bdv.options().addTo(...));
before you remove the old sources
NicoKiaru
@NicoKiaru

There is a CacheService backed by a weak hash map, into which you can put that stuff.

I wasn't aware of the CacheService, and I didn't know what a WeakHashMap was. That looks incredibly useful!

Kyle I S Harrington
@kephale
@maarzt labkit is looking fantastic these days. has anything been developed for applying the classifiers trained with labkit in a headless way (e.g., train on my laptop, segment on a cluster)?
oh, Others > Batch segment images, i can find the corresponding code
Christian Tischer
@tischi
@tpietzsch @NicoKiaru would it be feasible and useful to implement a BdvFunctions.show( SourceAndConverter )? I think that would be very useful to, e.g., give users the possibility to use own LUTs for displaying data in the Bdv. Currently, to achieve this, one needs to construct oneself a Source<ARGBType> and then call BdvFunctions.show( Source<ARGBType> ). This works fine in principle, but the actual pixel values in Bdv are then from 0 to 255 and do not reflect the real data anymore, which I think is not ideal.
NicoKiaru
@NicoKiaru
Actually, related to the point @tischi suggest : I try to implement a bigdataviewer- scijava repo, and one problem I came across is the following : when you perform processing, you want to act on the 'real' source, but when you want to display it, you want a 'volatile source' (or a converter (Volatile)ARGBType, as @tischi said). To circumvent this issue, I wanted to use the CacheService with WeakHashMap in order to be always able to retrieve the source and the volatile source (and potentially the RGBified source), one form another. But I don't know if it's a good idea. If you think it is, I'll go for it. If you plan to implement extra stuff in BdvFunctionsor in the new BigDataViewer UI which will make my efforts obsolete very fast, I'd rather not do it.
Philipp Hanslovsky
@hanslovsky
@tischi sounds like a great pull request :smile:
@NicoKiaru In Paintera I keep track of the data and volatile sources. In particular, I implemented an interface DataSource<T, V> extends Source<V> that provides both the data and volatile voxels. (As it extends Source, you could just pass it into a regular BDV if you wanted to)
Also, @tpietzsch is on vacation right now.
Christian Tischer
@tischi

Also, @tpietzsch is on vacation right now.

Maybe I better way until he is back before working on the PR? Because I think we talked about this before and I am not sure what his latest plans were...

Christian Tischer
@tischi

when you perform processing, you want to act on the 'real' source, but when you want to display it, you want a 'volatile source' (or a converter (Volatile)ARGBType

This was partly my point of suggesting to work more with SourceAndConverter objects, because you would have the Source holding the actual data together with the Converter< R, VolatileARGBType > that can be used for rendering. The job of actually applying the Converter to the Source could then be delegated to be done inside Bdv, because outside Bdv it anyway isn't useful?!

However, one limitation with this idea is here: https://forum.image.sc/t/bigdataviewer-blending-modes/28568/8
For my applications, I seem to need to also specify a special VolatileARGBType out-of-bounds value, which is currently not part of the Converter but of the Source....