sliceOmatic Changelog

What's new in sliceOmatic 6 Rev-1

May 16, 2022
  • Complete change of the internal character representation. I now use Unicode to enable to work
  • with foreign characters in the file/dir names. All script files are now in UTF-8 for the same reason.
  • Change the default path for a lot of files:
  • The User directory has been moved to c:Usersuser_nameDocumentsTomoVision instead of
  • c:Usersuser nameAppDataRoamingTomovision. This should help the users reach it since AppData
  • was hidden and hard to reach.
  • The scratch dir has been moved to the same dir: c:Usersuser_nameDocumentsTomoVision instead
  • of c:temp since c: is protected on the most paranmoid systems and I could not create the Temp
  • folder there.
  • The snapshot will send its images to "Pictures" (c:Usersuser namePictures)
  • The traces will be sent to the "Desktop" (c:Usersuser nameDesktop)
  • CSV files are now saved in UTF-16LE instead of the old ASCII format.
  • Add the possibility to collapse/expand groups in the File/Tools and Mode menus.
  • Completely re-design the debug/trace modes (accessible with "Ctrl-T")
  • Add a bunch of "Status" info options (including "License Info") in the File menu.
  • Fix an orientation problems, in side View, with non-DICOM images that have Z going from head to toe (old Siemens).
  • Add a 90/360 deg option for the ray-tracing fct of side_view (only available if you have a CUDA card).
  • Add an arrow representing the viewer in addition to the clip plane line when using Side View.
  • Fix a problem with the script commands: "color: black val" and "color: white val".
  • Add a "Line" tool in the "Geometrical Mask" mode. This line has a thickness defined with:
  • "mask: thickness value".
  • Slightly decreased the height of the "Mask" mode interface.
  • Fix a problem with 2D and 3D results where the default save dir was c:temp even if the
  • scratch dir has been changed to something else.
  • I also added a new option to the save directory, the choices are now: fixed (you select the dir),
  • source dir (the dir where the source files are) or scratch dir.
  • Fix a problem that cause the points to be invisible in 3D.
  • Fix a problem with the protractor in 2D Measures.
  • Fix a crash in Mixer if the files names where to long.
  • Add a "Noise FFT" tool in "More tools" that evaluate the noise in the images from the FFT transform.
  • Add a "Filter FFT" class in "Clases" that enable to filter images from the FFT transform.
  • The values of "P" and "T" are now defined for both GLI and TAG eq in the mixers. (It use to be that the
  • GLI pixel values "P" was only defined for the GLI eq, and the tag value "T" only for the TAG eq.)
  • By having both defined in all equations, we can now do things like "(T1=2)?0:P1" to mask pixels of
  • the GLI images based on their TAG values.
  • Add the "Key Words" option in the Mixer to enable the module to discriminate/associate based only on
  • specific key words in the specified DICOM tags.
  • Remove the ABACS+ module at the request of Voronoi.

New in sliceOmatic 5.0 Rev-12b (Nov 3, 2020)

  • Some Intel drivers have problems with the OpenGL function glDrawPixels.
  • Youi now have the option of not using glDrawPixels in Config/Drivers.
  • It is also the bit 0x02 for the variable $OPENGL_FLAG.
  • So, f the program crash after some time working on an image, you may
  • Try enabling the "no glDrawPixels" option. But be aware that I did see
  • Some weird things when not using it and running the program in remote.
  • $OPENGL_FLAG: bit 0x01 = no double buffer, 0x02 = do not use glDrawPixels.
  • In region growing, the tag=none can now be used to erase.

New in sliceOmatic 5.0 Rev-11b (Aug 24, 2020)

  • Add support for remote connection.
  • Note: Older dongles (before August 2020) need to be updated for support remote connection.
  • Contact TomoVision to get instructions on how to updated the dongle.

New in sliceOmatic 5.0 Rev-10b (Jun 5, 2020)

  • New user tool "TAG Save DICOM .seg" to create DICOM "Segmented Image" files from the tag results.
  • Greatly improved the speed of reading a .mov geometry file.
  • Fix a problem that prevent some old Siemens lossless JPEG 16 buits from being read.
  • Fix a problem for some "Geometrical Mask" when the x/y pixel ratio is not 1/1.
  • Add a new user tool "DICOM_Info" that enable to export up to 4 DICOM tag values from the slices to the Excel result file using the "2D Result" mechanism.
  • Add a new user tool "3D Sphere Fit" to fit a sphere to a surface using least squares.
  • Add a new user class "2D Rotating Cut" to create cut planes defined by 3 points and rotating around 2 of these points.

New in sliceOmatic 5.0 Rev-10 (Jun 5, 2020)

  • Change the dimensions information in the Matrix and Vector classes from short to int to enable the manipulation/inversion of matrix with more than 64000 rows or columns.
  • Add the "3D Results" tool. The tool can now export the surface and volume of geometries and the coord of up to 10 3D points.
  • Add the "3D Sphere Fit" tool in the additional tools. This tool can be used to fit a sphere to a portion of any geometry using the least squares method.

New in sliceOmatic 5.0 Rev-9 (Sep 20, 2019)

  • Fix a re-entry bug in the JPEG lossless compression that can cause the browser to crash.
  • Add support for multilingual user directory name.
  • Add a new group to the "2D Results" tool: "File Info" that give information of the file containing the selected frames
  • Directory name: Give the directory of the file.
  • File name: Give the name of the file.
  • File format: Give the format of the file (ex: DICOM, JPEG...).
  • Fix a bug in "2D Results" that cause the names in the list to be improperly refresh when an item is moved to the top of the list

New in sliceOmatic 5.0 Rev-8d (Jul 24, 2019)

  • The "Result 2D" tool now replace the patient name with "anonymous" and the patient and study IDs with "xxxxxx" if the anonymous mode is activated.
  • Force a re-coputation of the surfaces/results each time a new line is written using the "2D Results" tool.
  • Assign a value of "1.0/1.0" to pixel dimensions if the tag (0028,0030) is present with values "0.0/0.0" (seen in a SC image from a INFINITT PET/CT scanner). The flag "BAD_DIM" is also raised.
  • While reading a file, the "conversion_rules.txt" "REPORT" and "WARNING" now produce a feedback in the text window.
  • Better initialization error message for CUDA VR modes.
  • The demo numerical values have been changed from "xx.xx" to "Demo". This can be changed with the variable "$INTERFACE_DEMO".

New in sliceOmatic 5.0 Rev-8 (Jul 3, 2018)

  • New tool "2d Results" to create Excel files from all the measurements in the program.
  • New additional tool "2D CT Gradient". This tool limit the gradient of the image to a defined threshold range.
  • This enable the "Snake" and "Morpho" modules to be better behaved when working with CT images.
  • Beter/faster gestion of the OpenGL contexts. Plug a leak in context swap.
  • New version of the ABACS additional module. ABACS now support L3 and T4 levels & user defined thresholds.
  • Recompiled with VS2015 libraries.
  • 64 bit version is no longuer compatible with XP.

New in sliceOmatic 5.0 Rev-7c (Dec 17, 2017)

  • New pop-up messgaes for expired temporary licenses and expired update licenses.

New in sliceOmatic 5.0 Rev-7b (Oct 5, 2017)

  • Fix a problemin "Region Growing", added in rev-7, in "Grow 2D" sub-mode, where brush size larger than 1 pixel no longuer worked.
  • Add support for the new ABACS Auto_L3 from Voronoi Health Analytics.

New in sliceOmatic 5.0 Rev-7 (Sep 21, 2017)

  • Add new "Alberta Protocol" shortcut to activate the new simplified menu option.
  • Add support for simplified menus:
  • The command lines arguments "-s name" and "-n title" are used to give the name of a series of scripts that are presented in the mode menu to simplify the menus.
  • The "title" is the name applied to those scripts. ex: "-s sarcopenia -t "Alberta Protocol""
  • Add 2 new script commands:
  • snake: tag
  • snake: geom
  • Also fix a few timing problems for scripts.
  • Fix a few minor bugs with window resizing.
  • Add update to the current slice from the 2D selection tool.
  • Redesign the "Configuration" interface to make it more modular, added the new Config DLL dir.
  • Fix a number of bugs in the Histogram Segmentation mode.

New in sliceOmatic 5.0 Rev-5e (Aug 20, 2015)

  • Fix a problem when the program was set in mode Morpho by a script: the watershed lines did not show correctly.
  • Fix a deadlock issue that sometime happen when saving tag files.
  • Some cleanup of the script files.
  • Fix a refresh bug in Mode one when updating the DB through the "DB file management" mode and changing the displayed image.
  • Changing the selection through the "DB File Management" menu now update the slice selection.
  • Add the "Flood" command to the morpho scripts.
  • Fix an "undo" problem with Morpho "Flood Watersehd" operations.
  • Fix a problem with refresh of oblique MPR slices.
  • Add multi-thread & cancel window for 3D slice option.
  • Better threshold preview if tag 0 is locked.
  • New script command to preserve the window placement in floating window mode.
  • Add scripts to fix the threshold values in additional mode "Histo".
  • Fix the macro assignations.
  • Add a new "TAG Delete" tool. Its function is equivalent to the "tag: t_tag delete" command.

New in sliceOmatic 5.0 Rev-5d2 (Aug 5, 2015)

  • The DICOM browser now only recognize "part 5" DICOM files.
  • Fix a problem with the browser that cause it to freeze after scanning a directory that did not contain any image files.

New in sliceOmatic 5.0 Rev-5d (Aug 5, 2015)

  • Fix small problems with Ortho and Oblique classes.
  • Fix small problem with Pilot Lines
  • Add frame tracking to pilot lines options
  • Add 3D to/fom 2D frame tracking in pilot lines.
  • Add 3D Geom Cleanup tool.
  • Adding series comment and image commnet in class series descriminator.
  • New DICOM browser. ONly search for DICOM images and lighter footprint than Medi browser.
  • Add icons in Medi and DICOM browsers.
  • Fix some problems when color and B7W images are mixed
  • Fix a problem saving some tag files
  • Fix a problem reading a dir with both GLI and TAG files.

New in sliceOmatic 5.0 Rev-5c (Aug 5, 2015)

  • Region growing preview now start at "On".
  • Fix a problem with 3D Slices: going to a 2D mode used to disabled updates.
  • Switching between modes ONE and ALL now reset the window sliders to their previous position.
  • Add support for pixel dimensions compute from CR and XA DICOM parameters.
  • Change some menu colors
  • Add new functionality to "Snapshot".
  • The variable "$SNAPSHOT_NAME" can be used to change the default name prefix.
  • The command "snap: [t_frame] frame [file_name]" will create one image for each frame matching the template "t_name". If no template is present, the current frame is "snapped". The resulting images will have the dimensions of the frame, regardless of how they are displayed in sliceO.
  • So, for example: "snap: "*.*" frame" will make an image for each of the frames currently in the program's database.
  • Note: only the GLI and TAG colors are used to create the frame snapshots, all other info is not saved (overlay, points, measures...)
  • Add the variable "$AUTOMATION_LOOP_COUNTER". That variable can be used inside scripts used in the Automation tool. It is incremented for each step of the automation process and reset to 0 with the reset.
  • Add DB File Management for 1D and 3D files.
  • Internal change: Change the Iterator to prevent conflict and deadlocks
  • Internal change: Rename class Matrix to Matrix_NxM because of a conflict with GDI+
  • Use GDI+ to add support for PNG, GIF, BMP and compressed JPEG image formats.
  • Fix a bug for JPEG-2000 color images.
  • Add "Save" buttons to RR2D and RR3D classes.
  • Fix a problem in the mixer (introduce in rev-b) where the "Vn" where not seen.
  • Modify the Fct_Ctrl_Register for Modes and Classes to enable classes that work with both 2D and 3D windows.
  • Fix a bug in propagate when using different resolution images.
  • Add Unari functions to the mixer: "-", "log", "log10", "exp", "sqrt", "floor", "ceil", "abs", "sin", "cos", "tan", "asin", "acos", "atan".
  • Add Binari functions to the mixer: "min", "max", "pow", "atan2".
  • Fix a mixer problem when result of a summation was a negative value.
  • Change the 4th GLI colormap to get a better range of colors.
  • Add an "edit" button in the class amangement modes. This enable you to edit the class tree as it is in the program's memory.
  • Add the 3D classes "Matrix" and "Group" to enable 3D modeling.

New in sliceOmatic 5.0 Rev-5b (Aug 5, 2015)

  • Add support for non-cartesian voxels:
  • Support for Spherical and Cylindrical voxels from 3D ultrasound files in
  • Ge Kretz and DICOM, Philips DICOM and Hitachi ALOKA DICOM formats. 3D viewing and reconstructions can now be done directly from these file formats.
  • Fix a proble with DB File Management in demo mode. You can now close files in demo mode.
  • Fix a problem with assigning values to array variables.
  • Fix a problem with Philips 3D Ultrasound DICOM files.
  • Add variables for the main file extensions used in the program. If you want to read files of a type with more than 1 extension, you can have multiple extension in each variable string, separated by spaces or commas.
  • The Mixer and Unsorted classes are now part of the basic sliceO package (they used to be part of the additional modules).
  • Fix an "undo" bug for Quadrant mask. The undo used to leave Quadrant lines.
  • Fix a bug in "Snapshot". Changing the output format with the mouse wheel didn't update the $SNAPSHOT_FORMAT_CUR valriable.
  • Add the command "File: t_file rescale slope intercept" to change the default values of the rescale slope and rescale intercept read from the files.
  • Add the variables "$GLI_HISTO_BINS_MAX" and "$GLI_HISTO_BINS_NB" for the histograms.
  • Fix a bug that created a few holes in the histograms.
  • Work on the automatic peak detection in the histogram tool.
  • Add a few "..._LIST" variables for the sake of completion.
  • Change the maximums for brush numbers and brush radius. Add a "big_brush.scp" script to create a new set of brushes.

New in sliceOmatic 5.0 Rev-5a (Aug 5, 2015)

  • Add a "Preview" button in Threshold mode.
  • Add "Close Unselected" button in "DB File Management" Mode.
  • Fix a bug in "DB File Management" "Pos." tab. Now the offset can be cumulated.
  • Add a "Histogram Segmentation mode" in the additional modules.
  • Add a "2D registration class" in the additional modules.
  • Fix a problem in Morpho for really big images (more than 512x512)
  • Add support for Siemens RDA files in the additional Spectroscopy module.
  • The "DB Class Management" mode can be used to add/remove classes for the 2D database (as before) but also the 1D database (for now that's the spectroscopy data only) and 3D database (3D geometris created with 3D modules or imported).
  • Add a "Dispaly 2D" mode.
  • Fix a bug in rev-4 where the program crash if multiple images are loaded and not all the images are displayed before some operations (like threshold).
  • Add a "Sort" functions to the DLL. This enable a new file structure for the DLL, where multiple dir can be used for basid and additional modules and module names are not the only criteria for the order of the modules in the menus.
  • New structure and names for the DLLs.
  • Add a new additional class "Path" and "Suffix" that sort the frames using the file's name path and TAG suffix.
  • Modify "Mixer" class. Now you can enter "path", "name" or "suffix" in the "Discriminate Channels on:" input box. This will cause the mixer to discriminate on input TAG file's path or file's name or the TAG suffix.
  • You can use this to compare the TAGs on 2 identical files. For example for
  • repetabilities studies. If the same images are segmented by 2 users, place the GLI and TAG files a different dir for each user, read them in sliceO, and use the mixer (discriminate on "path") to compare the TAGS. (the TAG eq: "((T1-T2)>0)?(T1-T2):(T2-T1)" should show the TAG differences).
  • Fix a problem in the Mixer for images that had a rescale slope and intercept.
  • Add support for SCANCO pQCT DICOM images.

New in sliceOmatic 5.0 Rev-4b2 (Aug 5, 2015)

  • Improve speed by only computing GLI and TAG frames when they are displayed. So for example, if you use convolution filters and are only displaying one image, it will be refreshed quickly, since we only re-compute that image.
  • Fix a bug that prevent "DICOM Tree" class from being saved correctly in the scripts.
  • Fix a bug in rev-4b that crash when loading 3D_Transform.dll.

New in sliceOmatic 5.0 Rev-4b (Aug 5, 2015)

  • Add the "Tag: t_tag color R G B" script command.
  • Fix a bug introduce in rev-4a that cause a crash if you use a user class.
  • Remove 3 callbacks from the classes and replaced them by virtual methods:
  • Metrics_Get_Res, Metrics_Get_Org and Metrics_Get_Frm. This mean that most of the user modules have to be re-installed with a compatible version.
  • Fix a bug that cause the preview windows of ROI amd MPR classes to not be displayed correctly when these class modes are first open.
  • Fix a bug when closing images with class MPR active
  • Now remember the ROI values when updating DB.
  • Add a "Display 2D" mode.
  • The "Class" modes no longuer are "2D" modes, the current display will not change when opening a "Class" mode. This was done to enable the "Registration 3D" to work on 3D geometries.
  • Add the variable "COMPUTER_TIMEOUT" to control the differnt thread timeouts. If you are working with huge images (>5000x5000) You may want to increase the timeout to 120 sec instaed of the default 30 sec: "$COMPUTER_TIMEOUT = 120".
  • Made "1" the default value for "$COLOR_CLASIC", so if you want the new "Mix" mode, you need to set it to "0" or press "SHIFT F2".
  • Add an interface for the "Pixel Grid" tool.
  • Add a script command to change the "Region Growing" sub-modes: region: mode (paint|2d|3d)

New in sliceOmatic 5.0 Rev-4a (Aug 5, 2015)

  • Add a progress bar at the top of the text window.
  • Add the "Surface" mask in the "Geometrical Mask" mode. The mask has a fixed radius that can be modified with the script command: "mask: radius value" where "value" is the radius in mm.
  • Modified the "Mix" color scheme. If you prefer the old look, the variable "$COLOR_CLASIC" can be set to 1 to restore the old Mix algorithm. The variable can also be toggled with the "SHIFT F2" key.
  • Add a new color scheme: the "Tint" mode. The GLI color is multiplied by the TAG color. The "Shift +" and "Shift -" can be used to add seom TAG color to the image.
  • The result give a nicer view of the Tagged tissues, but the tag values over the image background (GLI = 0) not visible in this mode (tag * 0 = 0). The shortcuts "F3" and "F4" have been modified.
  • Fix a crash that would happen if you use "flood watershed" without having created a watershed first.
  • Fix a problem with the pen interface for Snake, Geom Mask and 2D measures modes.
  • Changes to the internal structure of the frames class, to enable elastic deformations now all 2D/3D conversion must go through the callbacks.
  • Add the selection of saved results to the "File" page of the config menu.
  • Removed the "sliceO_5.dat" file in scratch dir. Replaced it by a "sliceO_5_crash.scp" in the user's directory. This "crash" file contain only the active files and it is deleted when we exit normally.
  • Better integration of the script and "Medi" Browsers. Some changes to the browsers.
  • Fix a display problem in Thresholding when you select/unselect slices they where not updated correctly
  • Fix a problem in Region Growing with locked sliders. If the dynamic range of the selected slices was smaller than the locked values, the locked values would change to the new range.
  • Fix a problem with 3D Volume measurement that falsely reported the volume to be open.
  • Fix a problem with snake to TAG that sometime created horizontal lines.
  • Improve debugging reporting.
  • Slightly increased speed.
  • Oups! The patient name was visible in the Study class name in mode Anonymous.
  • Fix a bug in the MPR classes that prevent them from working if you closed the frames in the original dir.
  • Fix the region growing erase for 2D region growing.
  • Add a "Propagate" script command to: Morpho, Mask, Regin growing and Snake modes.
  • Cleanup of the "Script Save As" command. Only modified parameters are now saved.
  • Add a "$FRAME_SCALING" variable that control the scaling applied to the frames when you press "+" and "-".
  • Add 3 new DLL's: TomoVision_3D, TomoVision_Progress and TomoVision_Plot that replaced the corresponding previous libraries.
  • In Ortho and Oblique, fix the dynamic range of the reslice data to the maximum range of the original.
  • In menu floating, you can no longuer close the floating menus.
  • Change default TAB number from 128 to 32.
  • Change default saved info in the DB file. Now the mean, min and max values under the tags are disabled by default, along with the surface in pixels and the volume in voxels. Only the surface and volume in the selected units are enabled.
  • Add TIFF, PNG, JPEG and GIF to the supported file format of the snapshot tool.
  • For compressed formats (JPEG) the $SNAPSHOT_QUALITY variable can be used to control the compression 1=poor, 100=best.
  • Fix a refresh problem when changing the number of available tags.

New in sliceOmatic 5.0 Rev-3b (Aug 5, 2015)

  • You can now drag&drop license files on sliceOmatic. It will call the License program for you.
  • The associated files (TomoVision_License, Raw_Header, and the medi and script browsers) where not compatible with Windows 32 bits in rev-3a. This has been fixed.

New in sliceOmatic 5.0 Rev-3a (Aug 5, 2015)

  • Recompiled with Visual Studio 2013 to add support for gesture interface
  • You can now use 2 fingers to scale/translate images under windows 8.
  • Add support for the pen interface under Windows.
  • Fix a bug in Morpho for signed CT images.
  • Fix a bug with the "Distance to line" tool. Distance where calculated wrong if the base line had a tilt.
  • Fix a bug in Threshold, and add TAG_Lock support to threshold preview.
  • Fix a small problem with the display of GLI values in "Pixel Info" tool for 32 bit images.
  • Add over/sub sampling to the MPR_Oblique class. Also added the folowing variables:
  • $MPR_OBLIQUE_ALPHA
  • $MPR_OBLIQUE_BETA
  • $MPR_OBLIQUE_THETA
  • $MPR_OBLIQUE_SAMPLING
  • $MPR_OBLIQUE_XY
  • $MPR_OBLIQUE_Z
  • If "SAMPLING" is 1, the "XY" and "Z" variable can be used to change the sampling of the resulting oblique slices. > 1 = oversampling, < 1 = undersampling.
  • Add support for drag&drop of directories.