Mantid Imaging 2.4

This release brings some significant new features:

Windows support

This release contains initial Windows support. It should be fully functional, although may have performance differences compared to Linux. It can be installed using conda (See Installation). We are interested in user feedback and aim to ship an installer in a future version.

NEXUS export

MI can now save datasets into the NXtomo and NXtomoproc formats.

Operations window improvements
  • Angle/Z slider

    In the operations window there is now a slider to move through images in a stack.

  • Automatic sinograms

    It is no longer necessary to manually convert to sinograms to use the stripe removal filters

  • Improvements to levels and zoom

    These are now locked by default to so it is easier to see the effect of changes to filters. They can be unlocked to enable auto scaling.

Reconstruction improvements
  • CIL PDHG non-negativity constraint

  • Line profile

    Movable line profile through the reconstruction preview

Internal changes

In order to support Windows MI has switched its multiprocessing implementation from fork to spawn which has required a change from multiprocessing.SharedArray to multiprocessing.shared_memory.

Experimental spectrum viewer

Some initial work on supporting Time of Flight imaging data.

Many fixes and clean ups to the code

Removed some unneeded options
  • ROI normalisation - preserve max option

  • Stripe Removal filter (note other 5 stripe removal filters remain)

  • Console progress bar

There have also been many smaller changes and fixes which are listed below.

New Features

  • #1340 : ROI norm - remove preserve max option

  • #1379 : Add angle/z axis slider in the operations window

  • #1217 : Basic NeXus Saving

  • #1385 : Load all NeXus rotation angles

  • #1394 : NeXus Busy Indicator

  • #1394 : Add .nxs extension to NeXus save path

  • #1399 : NeXus Saving OSError message

  • #1331 : Make MI Windows compatible

  • #1430 : Provide an Anaconda package that is compatible with Windows

  • #1398 : Save recons to NeXus file

  • #1444 : CIL PDHG non-negativity constraint

  • #1483 : Add line profile to reconstruction window

  • #1480 : Automatic sinograms for sinogram operations

  • #1523 : Lock zoom and lock scale selected by default in operations window

  • #1524 : Flat fielding after histogram locks to appropriate range when using lock scale

  • #1583 : Remove sinogram Stripe Removal filter as it is not needed

Fixes

  • #1381 : Don’t use console progress bar in GUI application

  • #1405 : MedianFilter work inplace on ImageStack

  • #1395 : Delete file when NeXus saving fails

  • #1397 : Only use real NeXus projection angles

  • #1473 : Tomopy COR finder use -log

  • #1475 : Fix scaling when saving to int

  • #1484 : Clear image previews in open windows when there are no stacks to select

  • #1496 : OutliersFilter IndexError when using sinograms

  • #1515 : Unlink axis in recon window

  • #1351 : Double clicking reconstruct buttons can cause RunTimeError

  • #1562 : Stop reconstruction previews updating when window is closed

  • #1564 : 180 stack not removed from main window when projection stack is deleted

  • #1561 : IndexError in Reconstruction window if select a slice or projection index that’s too high

  • #1565 : Compiler no longer needed for conda install

Developer Changes

  • #1272 : Consistent test class filenames

  • #1352 : Update astra-toolbox and cudatoolkit to allow windows installation

  • #1317 : Unify auto color palette code between MIMiniImageView and MIImageView

  • #1363 : Add auto color menu from constructor in MIMiniImageView

  • #1362 : Rename Images class to ImageStack

  • #1148 : Re-enable coverage checking

  • #1375 : Leak tracking tool

  • #1376 : Fix leak in StackChoiceView

  • #1387 : Fix async task leak

  • #1384 : Remove StackSelectorWidget and StackSelectorDialog

  • #1420 : Save NeXus data without concatenate

  • #1402 : Add GitHub Actions tests for Windows

  • #1449 : Update CIL to 21.4, Astra to 2.0

  • #1341 : Update to python 3.9, numpy 1.20

  • #1509 : Change nametuples to use NamedTuples from typing

  • #1495 : Document the harmless libdlfaker.so errors on IDAaaS

  • #1427 : Update pytest and coverage to latest versions