tutorials icon indicating copy to clipboard operation
tutorials copied to clipboard

HowTo wishlist

Open frauzufall opened this issue 5 years ago • 15 comments

  • [ ] How to loop over all images of a directory
  • [ ] How to convert image types
  • [ ] How to do maximum projection
  • [ ] How to add overlays / work with ROIs
  • [ ] How to parallelize image processing using the Executor service as done here and discussed here.
  • [ ] How to measure resulting in a table (related)?
  • [ ] How to deal with image calibration / pixel size in space and time?
  • [ ] How to visualize a spot detection result?
  • [ ] How to save an animated GIF?
  • [ ] How analyse an MRI-data set of a banana slice by slice 😉
  • [ ] How to react on user clicks in an image window?
  • [ ] How to sychronize BigDataViewer windows/panels so that their planes are always perpendicular?
  • [x] How to open confocal series zip
  • [ ] How to iterate a HyperSphere in Java - I only know the cursor way.
  • [ ] How to carry out pixel level mathematical operations like I can in Matlab? Full access to indices, values, logical operations etc. (may be ask @lhilbert what exactly he means by that)
  • [ ] How to use the Logger?
  • [ ] How to take a RandomAccessibleInterval and open it in a new or a given pre-existing BigDataViewer.
  • [ ] (as a HowTo or notebook) How to do particle analysis, including (or linking to) several steps:
    • [ ] Threshold an image (this notebook)
    • [ ] Connected-component analysis (this notebook)
    • [ ] How to take an ImgLabeling and iterate over its LabelRegions
    • [ ] How to get from a LabelRegion to a RealMask (i.e. imglib2-roi)
    • [ ] How to do measurements on objects, using RealMasks sampled on an input RandomAccessibleInterval; e.g. center of mass etc.

Who has more questions?

Can others edit this post? If not, just answer and I update the list. We could also add the user handle next to a question if someone volunteers to solve a specific one-

frauzufall avatar Nov 28 '19 21:11 frauzufall

Hey @frauzufall ,

I ❤️ your initiative! There are indeed some things I've never managed in ImageJ2 and would love to learn how to do them. I link some half-backed solutions for these questions and some solutions only in ImageJ1:

Thanks again for your efforts! If you point me to better solutions answering my questions, I'm happy to help to write the HowTo-code 🎄

Cheers, Robert

haesleinhuepf avatar Nov 29 '19 09:11 haesleinhuepf

Hi Robert, thanks for the questions and links, I'll look into it! Btw, here is a PR with some improvements from the discussion in the last PR https://github.com/imagej/tutorials/pull/79

Another quite straightforward thing to do would be to translate these IJ2 script templates into Java.. And sort them into the HowTos.. And vice versa. (Though I would prefer groovy) Then the HowTos would also be available from the script editor directly as templates. And if @ctrueden or someone else finds a way to do the translation automatically at some point, even better!

frauzufall avatar Nov 29 '19 13:11 frauzufall

Hey @frauzufall

Great! I'm happy to take the translation of the scripts over. For 11 files I would not invent an automatic translation algorithm ;-)

Is there a HOWTO-template and short description available of what a HOWTO-writer should take into account?

Thanks!

🐰

haesleinhuepf avatar Nov 29 '19 14:11 haesleinhuepf

@haesleinhuepf cool! I added a readme and template to #79. Let me know if it's useful or needs improvement!

frauzufall avatar Nov 29 '19 15:11 frauzufall

Hey @frauzufall,

while translating the script templates, some additional questions came up:

I may add some more while translating ;-)

haesleinhuepf avatar Dec 01 '19 10:12 haesleinhuepf

How to carry out pixel level mathematical operations like I can in Matlab? Full access to indices, values, logical operations etc.

lhilbert avatar Dec 01 '19 13:12 lhilbert

@haesleinhuepf wrote:

How to iterate a HyperSphere in Java

HyperSphere<T> implements Iterable<T>, so it should work exactly as in the Jython example, no?

imagejan avatar Dec 01 '19 15:12 imagejan

it should work exactly as in the Jython example, no?

I couldn't find out how. My IntelliJ gives a bit a weird error message

image

haesleinhuepf avatar Dec 01 '19 15:12 haesleinhuepf

In this ImgLib2 example it seems to work.

imagejan avatar Dec 01 '19 15:12 imagejan

I think the problem is, neither IntelliJ nor the code writer can know what U is. A problem introduced by Java generics....

haesleinhuepf avatar Dec 01 '19 16:12 haesleinhuepf

neither IntelliJ nor the code writer can know what U is.

That's why you have to put U extends RealType< U > in the class/method signature, as shown in the example as well. I'd be very surprised if IntelliJ couldn't handle generics well. I'd recommend using Eclipse then ;-)

imagejan avatar Dec 01 '19 21:12 imagejan

That's why you have to put U extends RealType< U >

But it's DoubleType and not RealType<U>, look here: https://github.com/imagej/tutorials/blob/adding_scripting_templates/howtos/src/main/java/howto/processing/CreateAndConvolvePoints.java#L60

haesleinhuepf avatar Dec 01 '19 21:12 haesleinhuepf

I added a point by editing the ↗️ original post.

imagejan avatar Jan 28 '20 15:01 imagejan

I merged #79, in case that affects the checklist here at all.

ctrueden avatar Feb 04 '20 20:02 ctrueden

Thanks @ctrueden!

@haesleinhuepf, do you plan to continue with the scripts or should I continue from you branch https://github.com/imagej/tutorials/commits/adding_scripting_templates? Should we go over it together at some point?

frauzufall avatar Feb 05 '20 08:02 frauzufall