Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add deconvolution and texture analysis notebooks for I2k 2023 #290

Merged
merged 9 commits into from
Oct 19, 2023

Conversation

elevans
Copy link
Member

@elevans elevans commented Oct 18, 2023

This PR adds two new jupyter notebooks to the use case section in the PyImageJ documentation. These notebooks do the following:

  • 3D Deconvolution
  • GLCM/Haralick feature texture analysis

Both of these notebooks only need ImageJ2 and no legacy 🎉 so we don't need any changes to the code base. I also reorganized the use case section into sub sections:

  • imagej-ops
  • Integration
  • Segmentation
  • Other use cases

The goal is to use these notebooks in the upcoming I2K 2023 workshop.

This commit reorganizes the use case section of the docs into
sub categories:

- imagej-ops
- integration
- segmentation
- other use cases
@codecov
Copy link

codecov bot commented Oct 18, 2023

Codecov Report

All modified lines are covered by tests ✅

Comparison is base (f8c7909) 77.65% compared to head (de1ba3a) 77.65%.

❗ Current head de1ba3a differs from pull request most recent head b5e16e2. Consider uploading reports for the commit b5e16e2 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #290   +/-   ##
=======================================
  Coverage   77.65%   77.65%           
=======================================
  Files          16       16           
  Lines        1947     1947           
=======================================
  Hits         1512     1512           
  Misses        435      435           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@ctrueden ctrueden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow! 🤩

For the GLCM notebook:

  1. This is a super awesome notebook. It helps me too to understand Haralick features, which I never really understood before. It also helped me to see more things matplotlib can do. 😎
  2. There are a few minor typos, misspellings, and formatting oddities, e.g. the "Slicing a net.imagej.DefaultDataset" comment not having the proper leading asterisk, due to Markdown. texutures, Promenence, Cluser, transistions, cotains, ... Might be fastest for someone who isn't you to just go through it with a fresh set of eyes and fix those little things.
  3. I would suggest to name the crop regions differently than "crop_0" through "crop_5". It would be clearer to name them something like: cyto1, cyto2, cyto3, gag, bkg1, bkg2. Then explain why you chose these crops. Then finally at the end when they cluster up nicely, you don't have to spend so many words explaining what each crop represents, but only the explanation of why these areas measure in this way.

@gselzer
Copy link
Contributor

gselzer commented Oct 18, 2023

I have a couple small suggestions, just about organization. Take or leave either of them:

  1. In the Decon notebook, I think it would be really nice to display the original and deconvolved images side-by-side, so you can compare the difference more easily.
  2. In the GLCM notebook, I'd suggest displaying the image right away - you talk about the image but unless I can immediately relate that to what I see in the image I immediately forget the details you listed off.

@bnorthan
Copy link

bnorthan commented Oct 18, 2023

Hi @elevans

I would change the paragraph that says "this notebook utilizes the Richardson-Lucy Total Variation (RLTV) algorithm, which has significantly improved axial resolution over the standard RL algorithm"

The RLTV algorithm is used to limit noise, which can be a problem with the standard RL algorithm, however there is not alarge difference in 'resolution' between the standard and TV regularized version (as a side note resolution is a pretty nuanced topic and technically deconvolution improves 'contrast based' resolution methods, like the Rayleigh criteria, but does not restore out of band frequencies to a significant extent).

See below description and figure from my deconvolution/deep learning workshop. Even though the workshop used my opencl python version of RL, the figure linked below was actually generated a long time ago, for the 2015 ImageJ Conference, and used the version of RL from imagej-ops.

https://true-north-intelligent-algorithms.github.io/deconvolution-gpu-dl-course/20_deconvolution/0_intro_to_decon.html#richardson-lucy-with-total-variation-regularization-noisy-image

@elevans
Copy link
Member Author

elevans commented Oct 18, 2023

Thanks @bnorthan! I'll update my text to state that RTLV limits the noise that standard RL can amplify.

doc/Deconvolution.ipynb Outdated Show resolved Hide resolved
doc/Deconvolution.ipynb Outdated Show resolved Hide resolved
doc/GLCM.ipynb Outdated Show resolved Hide resolved
doc/GLCM.ipynb Outdated Show resolved Hide resolved
doc/GLCM.ipynb Outdated Show resolved Hide resolved
doc/GLCM.ipynb Outdated Show resolved Hide resolved
doc/GLCM.ipynb Outdated Show resolved Hide resolved
doc/GLCM.ipynb Outdated Show resolved Hide resolved
doc/GLCM.ipynb Outdated Show resolved Hide resolved
doc/GLCM.ipynb Outdated Show resolved Hide resolved
@hinerm
Copy link
Member

hinerm commented Oct 18, 2023

Awesome stuff @elevans .. you taught me some stuff today! 😄

@elevans elevans merged commit 979499a into main Oct 19, 2023
8 checks passed
@elevans elevans deleted the i2k-2023-doc-update branch October 19, 2023 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants