Where communities thrive

• Join over 1.5M+ people
• Join over 100K+ communities
• Free without limits
Activity
Richard Kino
@imagejan And thank you Jan for editing my original post, a lot easier to read!
@halirutan Thanks for the advice, that's a good point! I will edit the post and also try to attach and upload the original image.
Richard Kino
@halirutan I have edited the post. Thanks!
Richard Kino
I think it's probably a simple issue as when I try and draw a free hand area round one of the cells after giving the scale it gives a huge area which makes me think it isn't scaled properly....
Patrick Scheibe
@halirutan
@RichardKino_twitter Have you tried if you get reasonable values when you assume these areas are in pixel?
Richard Kino
@halirutan Well based on the scale bar the scale is 0.4775 pixels/um . Therefore for an example area measurement of 10000 which we could assume to be pixels I multiplying this value by the scale factor (10000 x 0.4775 = 4775 um (squared) which is still far too big. Unless I would then need to square root this value?
Patrick Scheibe
@halirutan
@RichardKino_twitter But it's 0.4 pixel/um length of the pixel. To get the area you need to square it.
When I understood you correctly then you need to make 0.47750.4775 to get the area of one pixel. Then you can do 100000.22800625 = 2280 um^2.
Curtis Rueden
@ctrueden
Did you guys see @imagejan's request to discuss on the Forum? This chat is intended for development discussion. And it will be very confusing later when people find that forum thread and then all the discussion here in the
Gitter channel is not visible from there.
Richard Kino
@ctrueden Forgive me, it's my fault. I won't post any more on this channel. I think its just that this was the only place I was getting a response! @halirutan Thanks for your help. I think I understand!
Curtis Rueden
@ctrueden
@RichardKino_twitter I understand. I am glad you got some help. It is OK to post here with a link to a forum thread, to help bump it. I just think it is unfortunate when conversations get split across media because then it is hard to follow it later. The forum also lets people follow individual threads, whereas this channel is one big feed.
so was working on a few other things today and a few students complained about mixing jupyter and imagej. So we made a binder-friendly scijava kernel, so you can start ImageJ notebooks online with a single click, but mayb someone already did this https://mybinder.org/v2/gh/4QuantOSS/scijava-jupyter-kernel/master?filepath=notebooks%2FImageJ.ipynb
@ctrueden you can do all of your presentations in ImageJ directly using Jupyter, reveal.js, RISE, scijava-jupyter-kernel (http://mybinder.org/v2/gh/kmader/quantitative-big-imaging-2018/master?filepath=Lectures/01-Introduction.ipynb)
Kyle I S Harrington
@kephale
@kmader indeed you'll find that @ctrueden setup binder (https://mybinder.org/v2/gh/imagej/tutorials/master) and somewhere had some RISE stuff floating around
ah cool! you have to add the binder-ready tag to the repo so people find it
Kyle I S Harrington
@kephale
i'm still curious about a version of the scijava-jupyter-kernel that uses a minimal set of dependencies, there is( or maybe was at this point? ) an issue with clashing dependencies when you start importing things like imagej-ops that are directly linked into the kernel which makes it more or less not possible to run any of my code in them at the moment
that makes things trickier, I am really curious to see how well the imglib2-numpy bridge works, there could definitely be some interesting things to come out of that
@ctrueden I just realized the SJJK version on Anaconda is 0.5.1 instead of 0.6.0.
Do you want me to update it?
@ctrueden let me know conda-forge/scijava-jupyter-kernel-feedstock#14 I can push the green button whenever you want. Also I could add it to the feedstock repo so you can release new versions yourself next time.
Curtis Rueden
@ctrueden
Minimal SJJK with scijava grab still not available. Still planned. But right now we are focusing on calling ij from Python via pyjnius. See https://github.com/CellProfiler/notebooks
Curtis Rueden
@ctrueden
@kephale I was able to wrap an entire net.imagej.ImageJ gateway as a python object. See the imagej pyjnius demo of the above repo.
I guess that doesn't give you clojure though :-(
If we make the system classpath customizable somehow it could alleviate some of the grab difficulties for now.
Kyle I S Harrington
@kephale
yeah, i saw the ij<->python action which is cool and certainly deserves to be a higher priority anyway.
yes, if i can get 1 or 2 jars on the classpath then my problems pretty much go away
i had another hacked solution that worked without using grab
via the pomegranate library that we use for dependency fetching in clojure land
it isn't pressing right now, as it will be a big leap to switch to RISE-based presentations/demos
(for me)
Curtis Rueden
@ctrueden
@kmader If something is missing from github.com/imagej/tutorials to make it more binder friendly, a PR would be appreciated!
@ctrueden any thoughts about the SJJK conda release?
Curtis Rueden
@ctrueden
Not at a computer today so cannot check the status. Do you think it is ready to go? I cannot remember. If you think ready then go for it.
@ctrueden no, you can move environment.yml into a binder subfolder (some people prefer this so it's less confusing or likely to get picked up by another tool) but the main thing would be tagging it on github as binder-ready so people can see it as an easy to launch script
getting http://www.imagejfx.net/ as a one-click launch / binder project seems like it would be pretty useful as well
@ctrueden I am not really using SJJK those days so I'll wait for you to be able to have a look. All the builds are green on the conda side.
Curtis Rueden
@ctrueden
@kmader I don't think anyone is working on imagejfx anymore, nor is there any plan to continue it to my knowledge. @cmongis would be able to say for sure though.
@ctrueden ah shame, it always looked very cool, are there any working projects for ImageJ web-frontends? the binder appmode lets you have interactive notebooks with javascript widgets. It would be a cool way for packaging specific analyses or macros as web-based tools (in this example we took nvidia's latest style transfer and turned it into a little app, https://mybinder.org/v2/gh/4QuantOSS/FastPhotoStyle/master?urlpath=%2Fapps%2Fnotebooks%2Fdemo_app.ipynb)
Jan Eglinger
@imagejan

:point_up: 23. Februar 2018 20:23

the main thing would be tagging it on github as binder-ready

Is there something else missing?

Jan Eglinger
@imagejan
@kmader @ctrueden alright, I added the binder-ready as a topic to https://github.com/imagej/tutorials
Thanks for the pointer!
Jan Eglinger
@imagejan
@hadim if it's just for testing, I would be willing to have a look at the SJJK release. How can I test it before it's released via conda? On the other hand, if you think it's alright, then merge it. Then I'll test it with the tutorials notebooks on binder.
If you want to test it you can just clone conda-forge/scijava-jupyter-kernel-feedstock#14 and then build the repo with conda build: https://conda.io/docs/user-guide/tutorials/build-pkgs.html#building-and-installing
Alison Walter
@awalter17

@kkangle I’m not 100% certain if this is where the NPE you asked me about earlier came from but its a possibility.

So ij.display().createDisplay(...) calls a DisplayService, possibly DefaultDisplayService. Which finds a matching Display and calls display(...). If the matched Display is the DefaultImageDisplay then it calls this method. And then again assuming it matches the default you get this method, which if you trace you wind up here. It creates an ImgView with a null factory, such that later in your notebook when you try to create a copy via the factory you get an NPE.

I'm making a lot of assumptions here ... so this may not be correct, but it seems promising?

To get around this in the meantime you could try using imagej-ops to convert your RandomAccessibleInterval to an Img in the notebook? (provided you can call Ops from your notebook, and there is a converter for RAI to Img - you may need to create an Img from the RAI and then copy the data over ... I can't remember). But then you call ij.display().createDisplay(...) on this newly created Img, which has hopefully been made with a non-null factory.

Hopefully that kind of made sense, feel free to let me know if you have any questions.

Yang Liu
@kkangle
Thank you @awalter17. I have a feeling this is the problem. I’ll try to fix it, and let you know if it works, fingers crossed.😊
Curtis Rueden
@ctrueden
@awalter17 Whoa, the DefaultDatasetService creates ImgView` with null factory? Yuck! Gotta fix that.
Thanks @imagejan and @hadim for testing SJJK.
@kmader About frontends: my current thinking is that some day, there will be a JavaScript-based frontend using Electron, which ships a JVM and a Python interpreter (and whatever else the cool kids like at that point), and discovers all available functionality conforming to whatever frameworks. E.g. asks SciJava for its modules, asks Python for its modules assuming some Python-based discovery mechanism is developed by somebody, etc.