Search This Blog

Monday, December 17, 2018

FireVoxel 294 is released.

1.  Implemented loading of the superPK files (*.idwc) into the FireVoxel dynamic component module.
2. Implemented an initial version of the MRTM0 model (with the reference function supplied by the superPK).
Reference function loaded from superPK
MRTM0 model fitting starting from time t* (equilibration time).

3. Implemented the MRTM model (using the loaded superPK reference function)


4. "Extract Atlas ROIs":  corrected so that the original Atlas layer is not removed after the operation.

5. Defect correction: In many operations when the layer configuration is modified, so if the floating Layer Control dialog is opened it was not updated leading to the confusion.
6. Extended "Integer Range Parser" support function used in many UI scenarios (f.e. Extract Atlas Layers).


7. Implemented workflow for Affine registration of Primate Atlas to the selected Squirrel Monkey Reference image.


8. Layer control dialog : added information about the number of marked layers. This is helpful when a very large number of layers is present.

9.  When layers are removed and a single layer is left, we set its Alpha to 100%

10.  Added the "Discard Alignment" item to the Transform menu.
11. Added "Save Alignment" function to the Transform menu.

12. UserOptions dialog:  added a general option for all the operations\transform which so far had only the default Interpolation. Now user specifies such "Default Interpolation".  Works including the Transform>Alignment tools.

13. Implemented a general high performance function for converting 4D Volume into array of Principal Component using PCA (resulting in new 4D Volume of components).



Sunday, December 9, 2018

FireVoxel Build 293 is released.

1. NIFTI-4D: Corrected the each frame timing calculation using nim->toffset\nim->dt information.

2. Implemented a custom processing option for DICOM Open Folder dialog box.  Rarely DICOM datasets have SeriesUID unique for each slice, so the option was introduced to parse them correctly.








3.  Defect fixed: In NIFTI file obtained from SPM (type FLOAT64) there were many entries with the value  NotANumber, so this was making Firevoxel crash.  Fixed by changing these values to 0, during the load.

Thursday, November 29, 2018

FireVoxel Build 292 is released.

1.  Several correction and improvements in the Dialog "View TAC"
2.  Major (x10+) acceleration of the saving FVX files with many slices, by improving the saving embedded dicom header structure.  This is done by using new DCMTK functions DcmOutputBufferStream::.
3.  Provided more robust  IsMatchingVolume function (used mainly in ABT).  Problem was that for many 4D volumes, there are one or more dimensions (f.e. time and b-values) with repeating values in the dynamic coordinates.  This introduces randomness in the sorting order of different timepoints, so matching function was often failing without reason.  Addressed randomness by checking against all suitable dynamic coordinates.
4. Restored the ABT subtest and full functionality for the ChestWall\FullBreast segmentation. This was disabled during the upgrade of MagTrace contour tool while constructing the ground truth for the lung segmentation (ISMRM).
5. Implemented the "Display unmarked layers" checkbox inside Layer Control dialog, functionality to display the unmarked entries thus expanding possibilities of working with the Layers.
6. Modified Transform>Translate  and Transform>Rotate function to work on several Marked volumes, while unmarked volumes are stationary.
7. Layer Control dialog:  added  "Mark\Unmark All layer" button.

Wednesday, November 28, 2018

Build 291B is released.

1.  Corrected defects in X-correlation registration dialog
2. Provided individual menu item for the Mouse brain->Atlas registration
3. Provided new functionality to remove a range of dynamic points specified by the User.

Sunday, November 25, 2018

FireVoxel Build 291 is released.

1. AutoFocus 3D: implemented a variant with "af Uniform Scale" option.
2. Implemented 1st version of the Mouse brain (automatically extracted from Multiholder) registration to the standard Atlas.
3.  Corrected binning inside the AutoFocus\MutualInformation registration.
4. Corrected run-away defect with MI_NORM\Affine.




Saturday, October 27, 2018




FireVoxel Build 290 is released.

1.  Fixed error when rasterizing Vector polylines and splines:  now the NULL pen is used so the rasterized boundary is much closer to the vector one.



2. Provided complete re-work of the MagTrace Toolkit:
Added several new image snapping modes, manual modes Alt1,Alt2,Alt3.  Rasterization tools.

3. Added DCMTK functions for loading DICOM headers directly from memory buffer (avoiding the intermediate file creation).  Resulted in x10 loading speedup.

4. Provided an initial version of VIBE4D + GRASP4D hybrid merge function.


FireVoxel Build 289B is released.

1. WM Lesions batch:  corrected defect when NIFTI orientation was not properly written.
     Improved the progress indicator so the name of the currently processed file is displayed.

Friday, October 26, 2018

FireVoxel 289A is released.

WM lesions batch job:  fixed the resolution problem when saving result to .NII file.

Tuesday, October 23, 2018

FireVoxel Build 289 is released.

1. Kidney segmentation FAP:  reduced number of UI parameters.
Adjusted default parameters for good processing of all 6 sets (L+R).

2. Open RAW dialog box:  implemented filter option to open ALL RAW formats (*.im;*.img;*nii;*.nia;*.nii.gz;*.mgh;*.mgz;*.time)

3. New version of Kidney FAP segmentation.

4. Batch processing of FLAIR  WM lesions.

5.  Corrected defect when the resolution of NIFTI saved file turns into (1,1,1)mm

6. RoiStats3D dialog:  added the value of the bin to the info displayed on the MouseMove over the histogram.

Monday, October 22, 2018

1. Kidney segmentation: FAP
Added User constant to extend the height of the kidney bounding box, not exposed on UI.
Effective Bounding box is displayed to the User at the end of procedure to provide feedback.

2.  Completely parallelize multi-slice projections such as MIP.  Added a progress bar since
it takes longer time to display.

3.  Extended Kidney FAP segmentation to include the notion of Collecting System.





Wednesday, October 17, 2018

FireVoxel 288C is released.

1. Kidney segmentation: algorithm modification to remove 99%+ of medulla voxels which accidentally appear on the surface of the kidney.

2.  ROI>Morphology>Inflate\Deflate functionality:  made corrections so the Inflate-Deflate combinations are reversible with the same parameter.  Fixed side-effects in   BrainAtrophy and FLAIR Lesions functions.

Tuesday, October 16, 2018

FireVoxel Build 288A is released.

1 Fixed defect when in KSFAP segmentation there are overlapping voxels 

in the final Cortex vs Medulla masks

Wednesday, October 10, 2018

FireVoxel Build 288 is released.

1.  EdgeWave-2D : implemented a pure 2D function which is very fast, works on a single slice.  It reuses the EdgeWave-3D code.

2. New algorithm for fully automatic MouseHolder segmentation (based on MIP and EdgeWave2D)
3. Implemented automatic rotation of the individual chambers to normal orientation. Youtube video posted.
4.  Implemented UI functions: Close Current Document (All Views)
and Close All Documents.
5. Open Dicom dialog box:  Implemented function to check all Children of the selected item.  Then few undesirable items could be easily unchecked and the rest loaded. Youtube video uploaded.

Thursday, October 4, 2018


FireVoxel Build 287 is released.

1. Implemented the separate volume output for the Rodent Multi-holder segmentation.

2. Implemented EdgeWave Multipass agent for Rodent Multi-holder segmentation.

3. First User version of the MultiHolder segmentation tool with dedicated dialog box
.

Wednesday, October 3, 2018

FireVoxel 286B is released.

1. Fixed the missing top\bottom slices issue in KSFAPv2 and KSFAPv3.

2.  Enabled KSFAPv3 on smaller cropped kidney volumes.

Tuesday, October 2, 2018

FireVoxel Build 286A is released.

Kidney DTI motion correction workflow:  fixed the issue when Mosaic DICOM info is missing so a dialog box pops up
Build 286 is released.

1. Implemented F9 switch between regular projection and MIP projection.
2. Implemented a new workflow KSFAPv3 (kidney segmentation) where User is not required to specify the mid-axial kidney slice and just need to make a bounding rectangle on MIP projection.

Wednesday, September 26, 2018

Build 285 is released.

1. Implemented function and User interface to change the DICOM Tags   Position\Orientation within the headers of loaded Volume.  This requires to view images in 3DSlicer.

2.  Implemented a new workflow for the Kidney motion correction in Mosaic-based DTI exam.
Enabled saving to DICOMs compatible with the 3D Slicer DTI framework.

3.  Optimized the Display Cache internals during the Paint Brush painting.

4.  Provided and ABT subtest for the new DTI kidney motion correction workflow.

5.  Provided a video manual for the new DTI kidney motion correction workflow.
.

Thursday, August 23, 2018

Build 284 is released.

1. Provided backward compatibility Load support for FVX file format V7.
2. New UI function:  MainMenu>Volume>Crop>Crop Current Slice.
3.  Complete re-engineering of internal DICOM representation in Volumtric entities.
4. Number of image in SIEMENS mosaic is automatically determined and initiated
inside the Mosaic-to-volume dialog box.
5.  When document is saved, the names of the individual layers are modified so the Path to
the layer file is removed and only the file title is left.
6.  After performing Mosaic->to->Volume operation for DTI image, save to DICOM, reload DICOM: the volumes are correctly loaded with full diffusion info preserved.
7.  After performing Mosaic->to->Volume operation for DTI image, save to FireVoxel, reload  FireVoxel doccument,  ave to DICOM, reload DICOM: the volumes are correctly loaded with full diffusion info preserved.
8.  Extended Mosaic->Volume function to all layers, including ROIs.  So Multilayer entity is converted properly.
9. Implemented the ABT subtest Dti Mosaic registration mini-workflow
10.  Fixed the issues with saving\loading a single ROI layer to DICOM.

11. OpenDicom dialog:  corrected the preview panel so it works for the ROI images saved in DICOM.


Sunday, August 12, 2018

FireVoxel Build 283E is released.


1. Fixed a glitch when  older FVX file contains and ROI layer without the orientation corresponding to Base layer.  This originated in older versions of FVX when new ROIs missed the proper orientation.  This caused the problem when cropping such multilayer volume using VROI.  Now software warns properly, allows you to proceed and the ImageOrientationPatient is automatically repaired in the problematic layer.

2.  MainMenu>Vector>Enclose Connected components menu command:
     a) If more than 1 component was detected, message is displayed informing about the # of  CCs.
     b) Displayed Slice is changed to the center of the largest created VROI.
     c) Corrected defect: when connected component is withing a single slice, we change the slice               so that the resulting VROIs becomes visible immediately.

3. Fixed defect in Layer Control dialog:  disallowed removing the layers when it results in no layers left.
   
     

Saturday, August 11, 2018

FireVoxel 283D is released.

1.  In Layer Control dialog when doubleclick on the Layer name and edit control shows up:
      a) Enabled immediate focus - so User can start type immediately.
      b) The whole current string is initially selected.
      c) Ctrl+A selection is enabled.

2.  User Interface Options dialog:  introduced new option "Load Dynamic Modelling setting from  FVX". 
      x - loads the setting for all models saved in the FVX file
      o - keeps all current settings, disregards the one from FVX file.

       (This is save as FireVoxel config file between the sessions).

3.  When Vol>Crop>All Layers is activated, the new document is created with the name of Source document +  "_crop".  Before it was the name of current Active layer in the source document.

4.  Vector ROI Properties dialog now remembers if   MM\VOX units were used in the previous instance (within the same FireVoxel session).

5.  Vector ROI Properties dialog box:  added a button and function "Scale Dimensions" by the specified scale.  Resulting Rectangle is cropped by the volume dimensions.

6.  In generic "Specify double value" dialog corrected so that the focus is immediately located inside the data field.

7.  In generic "Specify integer value" dialog corrected so that the focus is immediately located inside the data field.

Thursday, August 9, 2018

FireVoxel 283C is released.

1.  Updated the ConvertMosaicTo3DVolume function and the corresponding UI.
2.  Tested the workflow for motion correction of kidney DTI  2D+t.


Monday, August 6, 2018

FireVoxel Build 283B is released.

1. Removed the FilmView state when working with the single slice volumes.  It is always in Single Slice mode now.

Tuesday, July 24, 2018

FireVoxel  283A is released.

1.  Added the DisplayTransform record to the ZOOMCACHE structure.  This fixes some defects when switching between Film and Slice view and pulling the Zoom from cache.

2.  When new layer is added\created, immediately copy the Display Matrix of the current working layer.  This way the drawing can be done correctly on the newly created layer.

Monday, July 23, 2018

FireVoxel 283 is released.

Expanded Model0 to exactly match the hyperparameters and statistics parameters of the Roi Stats3D dialog box.

Friday, July 20, 2018

FireVoxel Build 282 is released.

Dynamic modelling,  models  #{43,46,47}

1.  Added a hypermarameter:  "Minimal Arterial Delay"
2. When iterating through the Arterial Delay values using the Arterial Delay Delta ensured that
the Max Arterial Delay value is always evaluated for any Delta.

Monday, July 16, 2018




Build 280 is released.

1.  Implemented "Arterial Delay" parameter for Model #43 2CXM.  Fitting residuals can be dropped by half on the test images.







2.  Changed default processing when loading DICOM images with IPP\IOP tags missing.  This allowed to load some volumes as 3D as desired.

3. Implemented new dynamic model "2CFM {vp,ve,Fp,PS} - Gridded Simplex Local Optimization".  This implementation contains the Arterial Delay output parameter.

4.  Fixed defect : when new ROI layer is created from Layer Control dialog box, the ROI slice dicom image position and orientation were not properly initialized.  This resulted in defect when loading the ROI volumes saved as 3D DICOM.

Wednesday, July 11, 2018

FireVoxel Build 279 is released.

1.  Combine and synchronized the Volume viewing pipeline (3D->Screen  affine transform) with the transform used to convert paintbrush screen coordinates into the voxel coordinates.  This fixed the defects with drawing ROI on various projections.

Tuesday, June 26, 2018

FireVoxel 278A is released

1.  First version of the Multiprojection re-alignment tools:  by {vector,sector}

2. Corrected overflow problem in Volume Smoothing\Ridge Segmentation with 15-bit images
 in "Separate Mouse exam problem"

3. Corrected a rare defect when VROI specified on a single slice, used for cropping, result in cropping of 2 slices.

Wednesday, June 20, 2018

FireVoxel  Build 277A is released.


1.  Fixed defect in  Main Menu>ROI>Extract Atlas ROIs

Monday, June 18, 2018

FireVoxel Build 277 is released.



1.  When adding a new layer, check now for the orientation to be the same as the current base layer.
Otherwise, display a warning  but give an option to proceed anyway (f.e. when image originating from MIDAS file and orientation info is not available).

2. Implemented new alignment function under Registration menu.  Having 2 volumes loaded we can now align their centers and rotate it to match their orientation.

3.  Register>Using DICOM tags only was renamed.


FireVoxel 276B is released.

1.  Fixed defect while loading NIFTI files with qfac=1 (LEFT-HANDED orientation)

Tuesday, June 12, 2018

FireVoxel 276A is released.

1.  Corrected a new defect in NIFTI->DICOM orientation conversion code.

2. Added a new function - "Main menu>Volume>Make 0-signal transparent"

Friday, June 8, 2018

Build 276 is released.

1.  Corrected problem with the NIFTI orientation encoding when loading and saving NIFTI files.

Friday, June 1, 2018

FireVoxel Build 275 is released.

1.  First public version of the  Automatic Lung segmentation from GRASP 4D.

Monday, May 28, 2018

1. Implemented fix when the TAC txt file was crashing the "Open Tac as 4D volume" function.
2.  Model #4 - added hyperparameters  {Start,End} to process only the range of points.

Tuesday, May 15, 2018

Build 274 is released.

1. Algorithmic work for Lung GRASP 4D fully automatic segmentation.  Working on 5 cases of Deep+Normal breathing trying to achieve a good result so lung spirometry measurements can be performed.

2.  Fixed the memory leak in Bical function.

3.  Corrected the allocated size of each memory block for Volume slice, so it is no more than required.  It also resulted in smaller system memory use and accurate resource usage reporting.

4.  BiCal with  "Output Field" option now otput "double precision Real" volume.

5.  Fixed defect when volume is converted to isotropic for processing and then back to original resolution, so there are no void voxels on the fringe.

6.  BiCal\EdgeWave front age calculation:  fixed defect occurring in 1-voxel margins of the volume.  This was resulting in unpleasant margin artefacts in BiCal.

7.  Fixed memory leak in DetectRelativeRidge function.

8.  Detected and removed all memory leaks from Lung\Trachea 4D segmentation.

9.  Optimized speed of  MemVol -> SetBox -> (MemVol) function which is the basis of many other
functions.  This reduced the time of Lung segmentation results  construction (not segmentation itself) x3 times.

10.  Parallelized CreateBasicDicomHeader function which is basis of many functions on UI.

Wednesday, May 2, 2018

FireVoxel Build 273 is released.

1. Corrected Multi-modal registration using crosscorrelation measure.

2. Restored the ABT test for Registrations.

3.  NIFTI File Load\Save:  enabled writing the modality name into the "description" field of the
NIFTI header.

4.  ANALYZE file format File Load\Save:  enabled writing the modality name into the "description" field of the NIFTI header.

5.   Enabled NIFTI Save\Load of 64-bit Real volume data.

6.  Implemented corrections to the "Manual\Automatic" Concentration baseline calculations.

7.  Implemented ABT subtest for the Lung\Trachea  4D segmentation

8.  Implemented new Concentration converison method  (S/S0-1)/(CR*T1)

Tuesday, May 1, 2018

Build 272 is released.

1.  Concentration conversion options and dialog: added an option for User to select manual baseline
and specify number of timepoints to skip and to average.

Wednesday, April 25, 2018

Implemented initial prototype of 100% automatic trachea segmentation from Lung MR GRASP 4D.


Saturday, March 24, 2018

Build 271 is released.

1. Added the "3D Processing" option to the  Segment>Detect Bright ridges  dialog box.

2. Implemented "3D Processing" option in the Volume>Smooth  dialog box.

3. VolumeSmooth in 2D:  implemented a pure, fully parallel 2D function.  It is D-times faster,
where D is the diameter of the apperture than the previous version.  D can be quite large  20-50 in
some segmentation scenarios.

4.  Developed morphological segmentation "Unlump ROI" procedure.
Applied to Lungs ROI.  When lungs are segmented, usually both lungs ROI is lumped together and to other small objects.  Unlump procedure runs and then we take 2 largest connected components.



5. Implemented an initial prototype of fully automatic Lung segmentation from MRI
GRASP-4D exam.

6.  Implemented the Volumetric Time Profile dialog.

7.  Implemented the Lung Static split based on   ROI Union algorithm.  Applied the volumetric time profile dialog to it.

















8.  Optimized the VolumeSmooth function in 2D with  Appeture weights = constant.  Used 256-bit AVX2 instructions for array  Multiply\Add

9.  Introduce the Roi Compression switch ON\OFF which can be called withing heavy computation procedure to substantially speed up calculation, without involving Users input into  User Interface Options.

10.  In multiprojection view with the synchronized cursor:  allow now to scroll through time synchroniously.

11. VolumeSmooth function: added the processor test for AVX2 capabilities.

12.  Change to menu item Volume>Change Volume Type function.  Added ROI->to->Integer conversion UI item.

13.  Implemented first prototype of fully automatic trachea segmentation from 4D MRI GRASP.

14.  Added the spirometry measures {FEV1,FVC} to Volumetric profile curve dialog.

15.  Implemented a new scheme to reduce the DICOM header size stored with each slice.  Space reduction is x2.

16. Implemented a single dialog to specify 3 integer values. This serves as the dialog for Lung splitting at the moment.

Thursday, March 15, 2018

Achieved new result in Chest Wall segmentation from GRASP data.

Sunday, March 11, 2018

FireVoxel Build 269D is released.

1.  Texture  Analysis Batch:  fixed defect when disabled layers were processed too.
2. Texture  Analysis Batch:  fixed the text format defect in the results (.17g)
3. Texture  Analysis Batch: Implemented Use Full Range checkbox option


4.  Layer Control dialog:  when adding a new Layer with the resolution different from the base,
the resolutions are displayed and option is offered to proceed and change the new layer resolution
to the base.

Saturday, March 10, 2018

FireVoxel 269C is released

1.  Fixed defect in RoiStats3D\Blob Statistic when blob can contain some void voxels.

2.  Rolled back to 269A and reimplemented changes of 269B.

Thursday, March 8, 2018

1. ROI colume Save to DICOM:  removed the dialog specifying the change of encoded bits.


2. Fixed defect with constructing DICOM  TAG_STUDY_UID when volumes originated from data other than DICOM. This allows outside packages to load volume with all slices.




3. Removed the MainMenu>File>Save DICOM Extended option and merged the functionality with the >Save DICOM function.

4.  Dialog RoiStats3D:  Save Stats - increased the text output precision of real numbers to the full possible precision.

5.   Texture Analysis batch log file: increased the text output precision of real numbers to the full possible precision.


Wednesday, March 7, 2018

Build 269A

1. Fixed the defect when not able to save a ROI to DICOM

Friday, March 2, 2018

FireVoxel Build 269 is released.


1.  Fixed defect in RoiStats3D dialog: when mouse cursor sliding over bin was displaying the
info for a different adjacent bin.

2.  Layer control dialog defect fix:  When User was unchecking non-Active layer, that layer became Disabled but Active.

3.  Fixed defect when  Volume was not loading with "SVD error" message.

4.  Texture Analysis Batch:  corrected the defect so that only Enabled volumes are analyzed.

5.  Fixed defect in  Volume>Convert Integer to Real.  Incorrect volume type was previously produced.

6.  Fixed normalization of the result when computing  Texture Gradient\Texture Edge maps.

7.  Enabled texture analysis batch for Real type volumes.

8. Added the "EMD\SigDiff" checkbox option for using different metrics for the gradient.

9.  Rename the "Texture Analysis Batch" dialog and menu item into "Region Heterogeneity Analysis Batch".

10.  Changed the Histogram calculation logic, so that the Range specified by the User kept as the Histogram range.  This applies both to RoiStats3D and Batch Dialog.

11. Fixed crash defect with Nbins=0, for {RoiStats3D, Heterogeneity Analysis Batch }

12. RoiStats3D : Made Histogram parameters preserved between the sessions of dialog.

Monday, February 26, 2018


FireVoxel Build 268 is released.


1. Implemented a workflow for Kidney Segmentation from Arterial Phase v.2.  Only requires a bounding rectangle of kidney on a single slice.












2. Finalized the Texture Analysis Batch workflow, with numerous new options:  Histogram Range,  Exclude Outside Range,  Voxel Weight Type.

3.  Implemented a stand-alone function for Texture Gradient Single Scale.  Replace radio buttons with ComboBox element.

4.  In Kidney Segmentation Workflow, the Kidney Patient side is automatically detected and the corresponding layer name is modified. 


Tuesday, February 20, 2018

FireVoxel  Kidney DCE segmentation workflow from a single Arterial Phase image:


Monday, February 19, 2018

FireVoxel  Build 267 is released.

1.  Texture Analysis dialog:  added parameters  Histogram {NumBin,RangeMin,RangeMax}

2.  Volume Projection settings:  implemented a new option "One Slice base only".  This is a regular projection but only the Base Layer is displayed.

3.  MainMenu>View>New View   :  corrected the defect so all the views are Re-tiled in this operation.

4.  Enabled the MultiView synchronized scroll.

5.  Output header at the top of the  Texture Analysis Log file.

Source folder = E:\000000_TestTexture
Texture radii (mm) = 0,2
Outer layer width (mm) = 3.000000
Inner layer width (mm) = 2.000000
Num inner layers       = 2
Hist num bins          = 100
Hist range min         = 0.000000
Hist range max         = 100000.000000

caseID modality ROI TxtrR[mm] vol[mm3] mean stdev skew kurt entr
Adamr_pre_T1_cr_sc T1 lesion 0.0 9607.181 253.207   57.520   -0.191   -0.645    4.149

Wednesday, February 14, 2018

FireVoxel Build 266 is released.


1.  Fixed defect in Applications>Brain MR>Automatic seed finder when the slice index was changed to a random value after the operation.

2.  Implemented a general operation for all models, so that the Input Function can have entirely different timing from the TAC data.  Integrated with model #32:  FDG 2 compartment Model


FDG 2CM data obtained as TAC (*.txt) from Jean



3. Fixed redundant sorting problem when constructing the DICOM tree (observed on Renal data)


4. Added and ABT unit subtest for the Model 32:  "FDG 2CM"

FireVoxel Build 265 is released.

1.  All EdgeWave-related processing was upgraded to seeds with double float coordinates.

2.  Changed the notion of a single slice VROI so the [Z0,Z1] coordinates are now [z,z+0.99....]

3.  Kidney Segmentation from Arterial Phase (KSFAP):  implemented a single click workflow with the dedicated dialog box.









4.  Produced an initial documentation "KSFAP QuickStart"

5.  Modified the "Save Stats"  file procedure in the RoiStats3D dialog box.

Tuesday, February 6, 2018

Implemented an Automatic  keypoint generator for the deformable registration based on the Texture Edge detector.  It provides results visually comparable to the Foerstner Keypoint detector, so it can become a viable alternative to Foerstner.
Advantage is that it is more studied and optimized in FireVoxel.  Eventually quality of the deformable registration would be compared for two or more keypoint algorithms.

Foerstner - Green squares, URAL texture is red dots.
   


Friday, February 2, 2018

Updated parameters for AutoMatic Kidney segmentation to improve segmentation results:

case Good1  Ctx+Mdl = Whole Kidney masks

Following parameters were changed:
In the first EdgeWave step , the Peel was reduced to 1 mm.



Also insured the Kidney is clipped 2nd time after the Whole Kidney mask is obtained








In the last step of (Bright Ridge Segmentation), the threshold parameter was reduced.



Tuesday, January 30, 2018

FireVoxel Build 264A is released.

1.  Implemented new options for  "User Options" dialog.
User can now specify RAM compression separately for {Integer,Real} volumes.  Configuration is saved and restored in the new FireVoxel sessions.

2.  Foerstner keypoints operator:  isolated the code and restored the correct operation

3.  Implemented ABT subtest for Foerstner Keypoints operation.








4.  when loading the  {.nii} files which only have values {0,1} the resulting volume type is binary.

5.  Fixed  defect when loading ROI as the new volume from RAW files {MIDAS,ANALYZE,NIFTI}
New behavior:
MIDAS:  if the ROI color tag is present - the initial forground color is set to specified tag value.

If tag was not present in MIDAS, or it is {NIFTI,ANALYZE} - the color is picked up from the ROI color generator, and would typically be one of the primary color  {Blue,red} and so on.

6.  Fixed defect:  When orthogonal projections are present, VROI is present, pressing F11 (=Advance to Next Landmark) on the orthogonal projection makes the image and vroi disappear.

7.  Fixed the defect when Synchronized cursor is enable and User constructs VROI and it disappeared for some volumes.

Monday, January 22, 2018

FireVoxel Build 264 is released.

1.  Implemented changes to the Main ToolBar, StatusBar and MainFrame window.  Removed the crash when attempting moving the ToolBar.  ToolBar can be now moved and re-dcoked repeatedly.

2.  Dynamic Modelling module:  performed the editing of all models for {Modality,DD}, modified
some models as specified.

3. Implemented the MCLASS_NONE modality concept.  This allows loading of RAW files  {Nifti,Midas} and then detecting a missing modality and requesting the Modality dialog.
UI Option "Verify RAW Modality" was changed so the dialog always comes up when modality is missing.

4. Fixed the error when saving the INTEGER (16-bit) volume to NIFTI (resulring image was all 0).

5. Fixed an issue when  loading the float32 NIFTI was crashing.  This was due to the presense
of invalid float32 (nand) representing the entire background.  So the new code converts all nand values to 0.

6. Fixed the defect with  "Realice_*.IMG"  Analyze volume.

7.  When loading the image without the modality, the document displayed prior to popping up the Modality dialog box, so User is more aware which modality to choose.  In 4D case, the volume automatically advances to the point of Max Info.

8.  Implemented "FDG Two Compartment model"  {K1,k2,k3,k4}


AIF (carotid artery)


ROI and its fitting.





Wednesday, January 17, 2018

FireVoxel 263A is released.

1.  4D Volume ->  Save .time:   replaced the RAW subtype selection dialog with the standard "DlgListChoice"

2.  Eliminated the redundant attribute "Concentration Required" from all dynamic models.

3.  Fixed the defect, when selecting the Tofts model (without prior loaded Input Functions) the "Load Input Function" (and other related IF buttons) dialog remained disabled.

4.  Changed convention:  when the Model not requiring Input Function is selected, the InputFunction panel buttons now becoming disabled.

5.  Enable modality CT inside the Toft's models (#8,#9)

Sunday, January 14, 2018

FireVoxel Build 263 is released

1.  Re-enabled the EdgeWave Single Slice variant function.
2.  Implemented the ABT Subtest for EdgeWave Single Slice.
3.  Implemented generic "ListChoice" dialog box to use in many scenarios.
4.  Implemented  checkbox "User Option" - Verify Modality when loading RAW images.
     Dialog box with the selection of modalities appears during the RAW load.
5.  Fixed defects in DICOM management of the Dicom internal header structure for cleaner DICOM save.

Friday, January 12, 2018

FireVoxel 262C is released.

1.  Fixed the critical defect in Dynamic Experiment dialog box:  when the User was switching to Models with Input Functions, the module was not recognizing the switch and not updating the dialog
items properly.

Wednesday, January 10, 2018

Vocal cord dataset.  Pre-processed the volume with Multiscale texture gradient (Rad=3).
Applied StdDev map to both original and Gradient image.
Used timepoints  [25,406], to exclude the streak frames


StdDev for  a) Original image                                            b) Gradient Map
c) Edges



Tuesday, January 9, 2018

FireVoxel Build 262B

1. Fixed crash when processing texture gradient on the 1-slice volumes.
2. Multiscale Texture Gradient function now produces actual Real map instead of pseudo-Real
3.  Enabled Gradient calculation on 4D volumes applied to all timepoints.

Sunday, January 7, 2018

FireVoxel 262A is released

1.  Re-engineered the MGH (FreeSurfer)  Read support.  Added the MGH\MGZ   ABT Unit test.
2.  Paintbrush drawing at Rad=0:  cursor radius is now minimal but will always remain visible.
3. Defect fix:  When Brush painting, after a certain stroke the Left Mouse (LMB) button is released.  Then if user continued the painting, but press the LMB first and only then  Ctrl button (usually it is Ctrl then LMB), FireVoxel was connecting the previously finished stroke with the newly started one, thus making the unexpected brush segments.

Wednesday, January 3, 2018

FireVoxel 262 is released.


1.  Fixed VolMinMax function to super-fast variant that does not require decompressing the volume and does not take any memory.  (defect fixed:  4GB CT was not loaded due to allocation restrictions).

2. Fixed the AboutDlg to display  "Allocated Memory" correctly when its size exceeds 2GB.

3. VolInfo dialog:  fixed the Frame Memory size information display when exceeds 2GB.

4.  Fixed defect: When older version of the FireVoxel (f.e. 255) tries to load new FVX file format introduced in later version (f.e.  261),  now exists gracefully instead of crashing.

5. Enabled the memory compression for Real images (PET, parametric maps etc).  On the large, 4GB,
mouse electrodes volume it is a x5 improvement comparing to Build 261.

6.  When saving the FVX document, check the appropriate disk space available and display the message if not enough space.

7.  Re-enabled parallel display when showing FilmView.  This makes big difference for very large volumes.

8. Fixed the CreatePaintbrush function so there is no increasing GDI handle leak during the extended drawing.

9.  When User starts to draw an ROI, without the ROI layer present,  a new ROI layer is created. But the Integer\Real layer still remains Active.  So MouseMove generates the access to the DisplayVoxelInfo, causing the decompress.  Now this access is disabled while painting, for much faster painting (x5 ? noticable on very large images)

10.  Re-enabled the Optimal Window Center\Width calculation for Real volumes to match the appearance in Build 255.

Monday, January 1, 2018

Saturday, December 30, 2017

1.  Input Function panel buttons are only enabled when the currently selected model allows the Input Functions.

2.  Each model now displays the number of the required input function in its name

Friday, December 29, 2017

Implemented a "Summary dialog", just before the Dynamic Model calculation is about to start, this dialog is displayed with all relevant processing info.  User can Proceed or Decline:

Thursday, December 28, 2017

Re-implemented the Concentration Conversion dialog so that only Concentration types relevant to the currently selected image are displayed.

Wednesday, December 27, 2017

Implemented the "Allowed Modality" and "Allowed Dynamic Dimension" attributes for every Dynamic Model.  Now when the User displays the list of models, only the relevant models (based on the currently loaded volume) are displayed.
MR  with Time 

MR with b-values
PET with Time

MR with TE

MR with TI

Friday, December 22, 2017

FireVoxel Build 260B is released.


1.  Updated a cluster of functions around {VolumeCleanMask,VolumeFillBox} to match new memory scheme for Real images

2. Corrected the crash and improved the performance and memory demands while loading the 450MB  Nifti  4D volume.

Monday, December 18, 2017

FireVoxel 260A is released.

1.  Fixed the defects in
     a)  Dynamic Integral function
     b)  Dynamic Maximum function.

     This was due to the switch to Real engine.

2.  Corrected and optimized the CreateVolumeUniform function.




FireVoxel  Build 260 is released.


1. EdgeWave:  merged the EdgeWaveCG (Competitive growth) into the EdgeWave basic function.  Added the "CG" option to the EdgeWave dialog box.













2. Fixed the defect of the displaying REAL volumes (detected by the diffusion ADC processing).

3.  Fixed very subtle defect in the setting the histogram range inside the RoiStats3D dialog box.
This is due to the Range parameters, when send and retrieved from the MS Dialog Control, change their value for unknown reason (different floating point settings?).   So the range has to be expanded
by relative 1e-10 to compensate for that effect.

Friday, December 15, 2017

FireVoxel 259D is released.

1. Correction:  restored and improved the logic of determining the optimal  Window Center\Width for signal to display mapping.  This was detected during testing the Linear Conversion.

2.  Enabled  Layer Operations >  Arithmetic Operations   on   Real volumes.
Enabled the operation on mixed  real-Integer volumes.

Thursday, December 14, 2017

Build 259C is released.


1.  Added a warning, in all Dynamic Models with Input Functions:  if the IF is a flat zero (after current conversion), it stops. May be indication of incorrectly supplied data.

2.  Defect: fixed so that RoiStats3D are now workingnon REAL images 3D/4D.

3.  RoiStats3D dialog:  Histogram save for the REAl images  is working now

Histogram
Max Count:= 43

Signal        Count
0.000020       3
0.000060       6
0.000099       6
0.000139       7
0.000179       7

Cortex\Medulla segmentation from the Arterial phase.

After obtaining the Whole Kidney ROI from arterial phase, we run a fully automatic function
"Segment>Detect Bright Ridges" with the following parameters:







Result is the separation of Whole Kidney ROI into  Cortex and Medulla

"Good case-1"
"Bad case -1"
"Bad case-2"

Wednesday, December 13, 2017

Disadvantage of "EdgeWave+Blanket" segmentation approach is the need for manually constructed blanket.

Attempt was made to automatically generate a suitable blanket.

a) A seed was placed on the cortex, same seed would be later reused for the final segmentation.

b) EdgeWave CG ran with some general parameters so roughly to capture cortex.

c)  Inflate the resulting ROI by 4mm.
d) Fill the contours 2D (F7).

This result we call AutoBlanket and it is called AutoBlanket


"Good Case-1"   result of AutoBlanket.

  Then we clip the image by the Blanket ROI and run EdgeWaveCG second time, we the new parameters to capture the Whole Kidney.











Final Result:  AutoBlanket (Red) in the background.  Whole Kidney mask is Green (Overlay)





Same approach for "Bad Case-2"

"Bad Case-1"  Whole Kidney

"Bad Case-2"  Whole Kidney

Preliminary result for the Whole Kidney ROI from Arterial Phase.
All 3 example uses  "EdgeWave with Blanket" functionality with the default parameters.
User only presses Accept button.
Blanket ROI was constructed with 5 contours in Axial projection (then morphed).

"Good case 1" - Whole Kidney ROI from Arterial phase.
"Bad Case 1" - whole Kidney ROI from Arterial Phase.
"Bad Case 2" - Whole Kidney ROI

1.  Defect:  when multilayer entity is Rotated (MainMenu>3D Projection>Rotate & Create new volume"), the layer Enable attributes were not properly transferred.

2.  Defect:  MainMenu>3D Projection>Rotate Ortho :  layer attributes were not transferred from Source to Target.

3.  Dynamic Modelling: Warning displayed when Concentration conversion is specified (Tissue and\or IF) and there are less than 3 timepoints are present.

4.  Fixed the defect in VolCleanMask.  This was detected by malfunctioning "EdgeWave+Blanket" function.
FireVoxel  259A is released.

Monday, December 11, 2017

1.  Fixed the Hang problem while intensely using the Paintbrush over large ROI area for prolonged time 2-3 min.

2.  Provided a clearer message when User attempts to use ROI-4D in dynamic modelling (only 3D ROIs are allowed).

3.   RoiStats4D dialog with ROI3D:   fixed the base Time issue when saving the TAC to .txt file.

4.  Layer  Drag-n-drop between documents:  complete ViewFilter is now correctly copied.

5.  Added ABT subtest for   FVX:  Save-Load-Compare operation.
FireVoxel Build 259 is released.
Major reengineering project to replace internal code representation of Real volumes,

Saturday, December 2, 2017

Enable Single value measurement operations (such as RMSE) on 4D volumes.

Sunday, November 26, 2017