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

Virtual foreward scattered detector (VFSD) functionality #12

Closed
hakonanes opened this issue Jan 23, 2019 · 8 comments
Closed

Virtual foreward scattered detector (VFSD) functionality #12

hakonanes opened this issue Jan 23, 2019 · 8 comments
Labels
discussion Discussion enhancement New feature or request

Comments

@hakonanes
Copy link
Member

hakonanes commented Jan 23, 2019

Create functions (or a dedicated VFSD class) to streamline formation of VFSD images. Desired functionality:

  1. Bin signal axis to 5 x 5 pixel pattern
  2. Form images from any number of bins
  3. Form RGB image by coloring three bins

Focus should be on maximising the contrast in each image, by e.g. using histogram equalization (http://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_equalize.html). The latter is related to #14.

@hakonanes hakonanes added enhancement New feature or request discussion Discussion labels Jan 23, 2019
@hakonanes hakonanes self-assigned this Jan 23, 2019
@tinabe
Copy link
Collaborator

tinabe commented Jan 23, 2019

Is interactive plotting something you have in mind for point 3? We could create 3 RGB markers that can be moved around to create a virtual interative image, hopefully by inheriting from pyxem or HS.

A simple solution would be to input 3 numbers corresponding to which pixels to use for each of the RGB channels. I think this should be used for point 2 in your list, at least.

@hakonanes
Copy link
Member Author

Yes, it would be ideal if the image formation function could take in either of:

  1. Bin index (say (3, 3) for the centre bin, if 5 x 5 bins)
  2. List of bin indices
  3. One hyperspy.roi.BaseInteractiveROI
  4. Multiple hyperspy.roi.BaseInteractiveROI

If a list of bin indices or ROIs are passed, the user should also be able to determine if they should be colored and in what color (a three element list for each image, or simply 'R', 'G' or 'B').

@hakonanes
Copy link
Member Author

After discussions with Jarle Hjelen: a forth feature could be creating VFSD images from two vertical rectangles on either side of the detector and subtract or add them to enhance topographical contrast similar to humans' stereopsis (binocular vision, https://en.wikipedia.org/wiki/Binocular_vision#Stereopsis).

@hakonanes
Copy link
Member Author

A way to test this functionality against commercial solutions is to compare our results to:

Since Bruker has a FSD, I guess the best way to test is towards TSL's datasets.

@hakonanes
Copy link
Member Author

@hakonanes hakonanes removed their assignment Sep 23, 2019
@hakonanes
Copy link
Member Author

This functionality is largely supported with:

  • s.virtual_forward_scatter_detector()
  • s.get_virtual_image()

What we should have is a version of pyXem's VDFGenerator to streamline typical results desired. Typical results include RGB image from three bins in a 5 x 5 px detector (as done in the above referenced paper by Wrgith et al. (2015)), phase contrast image (upper part of detector) and topography contrast image (lower part of detector).

@hakonanes
Copy link
Member Author

The 5 x 5 array is very similar to Aimo Winkelmann's 7 x 7 arrays in the aloe/xcdskd project:

We should focus on his implementation, perhaps let the user determine how fine the array should be.

This array should be its own class... with the different imaging possibilities showcased in the example usage link as methods? This way other possible signals can use the same class, not just EBSD.

@hakonanes
Copy link
Member Author

Although not that automated, all these things are possible, with some know-how, via kikuchipy.signals.ebsd.EBSD.virtual_backscatter_electron_imaging() and kikuchipy.signals.ebsd.EBSD.get_virtual_image().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Discussion enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants