Search This Blog
Thursday, January 28, 2016
FireVoxel Build 206 is released:
1. IVIM free model fix: was always returning "0" as the residual of the fit.
2. ABT test for Dynamic Modelling: modified the test so that results are compared to Standard using the specified tolerance (1e-3) to avoid costly investigation into ABT trivial "red flags".
3. Mouse brain PET-CT-Atlas workflow: verified that workflow works with the complete 20-region atlas.
4.Produced a Mouse brain atlas of all 20 regions that can be now processed by the Layer Control dialog.
5. Expanded current Layer Control dialog to 22 layers to accommodate an entire Mouse Brain Atlas.
6. Fixed the .IM Save\Load problem
7. Implemented a very early prototype of the new Layer Control dialog box. This Control would provide handling of all hybrid types of the primitives present in the FireVoxel entity: {Volumes,Landmarks,VROIs,Pollygons,Text, etc}. This dialog supports an unlimited number of layers. During the prototyping stage this dialog is activated by F9.
8. Code improvement: moved the CDlgLayerCtrl declaration within the class source module.
9 Dynamic Modelling module: implemented the Parametric map "Input function correlation"
10. Femur ROI registratio: Implemented a dedicated menu item with parameters suitable for this application.
11. ROI->ROI registration: Developed the Signal difference calculation working directly with Run-length representation of ROIs (x10-20 memory compact) that resulted in x10 speed up during the AutoFocus on Subscale=3. Speed up is even higher on the Finetune phase approaching
1. IVIM free model fix: was always returning "0" as the residual of the fit.
2. ABT test for Dynamic Modelling: modified the test so that results are compared to Standard using the specified tolerance (1e-3) to avoid costly investigation into ABT trivial "red flags".
3. Mouse brain PET-CT-Atlas workflow: verified that workflow works with the complete 20-region atlas.
4.Produced a Mouse brain atlas of all 20 regions that can be now processed by the Layer Control dialog.
5. Expanded current Layer Control dialog to 22 layers to accommodate an entire Mouse Brain Atlas.
6. Fixed the .IM Save\Load problem
7. Implemented a very early prototype of the new Layer Control dialog box. This Control would provide handling of all hybrid types of the primitives present in the FireVoxel entity: {Volumes,Landmarks,VROIs,Pollygons,Text, etc}. This dialog supports an unlimited number of layers. During the prototyping stage this dialog is activated by F9.
8. Code improvement: moved the CDlgLayerCtrl declaration within the class source module.
9 Dynamic Modelling module: implemented the Parametric map "Input function correlation"
10. Femur ROI registratio: Implemented a dedicated menu item with parameters suitable for this application.
11. ROI->ROI registration: Developed the Signal difference calculation working directly with Run-length representation of ROIs (x10-20 memory compact) that resulted in x10 speed up during the AutoFocus on Subscale=3. Speed up is even higher on the Finetune phase approaching
Wednesday, January 27, 2016
Tuesday, January 26, 2016
Monday, January 25, 2016
Implemented a very early prototype of the new Layer Control dialog box. This Control would provide handling of all hybrid types of the primitives present in the FireVoxel entity: {Volumes,Landmarks,VROIs,Pollygons,Text, etc}. This dialog supports an unlimited number of layers. During the prototyping stage this dialog is activated by F9.
Sunday, January 24, 2016
Thursday, January 21, 2016
ROI->ROI registration: during the reslicing operation in AutoFocus\Finetune iteration ROIs are transformed and partial volume voxels appear while the majority of voxels still remain binary ROI. Calculating of signal difference in the obvious way was not fast enough for comparing the massive images for Femur registration problem.
Developed the Signal difference calculation working directly with Run-length representation of ROIs (x10-20 memory compact) that resulted in x10 speed up during the AutoFocus on Subscale=3. Speed up is even higher on the Finetune phase approaching x30.
Developed the Signal difference calculation working directly with Run-length representation of ROIs (x10-20 memory compact) that resulted in x10 speed up during the AutoFocus on Subscale=3. Speed up is even higher on the Finetune phase approaching x30.
Thursday, January 14, 2016
Wednesday, January 13, 2016
Build 205 is released
"MainMenu>ROI>Split ROI by
Threshold" - added the BiModal Laplacian with ration method for initial
split.
Enabled accelerator "Ctrl+S" :
"Save FireVoxel document"
Implemented new rule to select
threshold from 2 modelled distribution: "Minimize
Missclassification" rule.
BiModal Laplacian histogram
CT-PET-ATLAS workflow: Register ALL:
fixed the crash defect on case W73"Deep breathing" lung
segmentation case: no leaks after BiCal+EdgeWave
Mouse Brain, CT-PET-ATLAS wokflow:
Provided an additional registration function to register everything to the PET space to avoid any transforms\interpolation of the principal data (PET).
Provided an additional registration function to register everything to the PET space to avoid any transforms\interpolation of the principal data (PET).
Mouse Brain CT-PET-Atlas workfow: finished
the integrated "one-click" registration function
Added the functionality to extract only desired
regions from the Atlas
Landmark co-registration:
a) When Source={3D,4D} 2-layer entity, registered to a 3D-volume, the timing information of the 4D volume was lost
b) Also corrected the defect when Alpha (transparency) and the color scheme of the source were lost after the regidstration.
a) When Source={3D,4D} 2-layer entity, registered to a 3D-volume, the timing information of the 4D volume was lost
b) Also corrected the defect when Alpha (transparency) and the color scheme of the source were lost after the regidstration.
Dialog RoiStats3D: in
Model-based Histogram segmentation added an option to view the "Modelling
Cumulative" curve (options are {None,All Curves,Cumulative"}
Also removed the "BiGauss Explore" and "BiGauss with Ratio Explore" options since they are superceded by the curves display now.
Also removed the "BiGauss Explore" and "BiGauss with Ratio Explore" options since they are superceded by the curves display now.
Histogram model-based segmentation
{BiGauss,BiLaplace}: Implemented initial framework to show the modelling curves
overlaid on top of the histogram
Implemented some improvements to Global
Optimization algorithm and code.
Fixed crash defect while loading the DICOM folder
obtained from Mr. Zhang under Win10. This was due to using the 32-bit
truncation in CTreeCtrl::SetItemData during the DICOM tree construction.
Moved the main development environment to Windows
10.
Fixed the defect in RasterPaintbrush dialog box:
checking the "Allow paint on parametric Maps" had no effect and
setting was not remembered. Drawing on Parametric maps is now possible.
Fixed the paintbrush problem when drawing on
integer volumes.
Registration by the landmarks: provided more
detailed analysis in case of the landmark mismatch between Source and Target.
Registration by Landmarks: upon the start of
the procedure all the "invisible" (void) landmarks are
unconditionally removed from ALL documents. This is to avoid frequent confusion
during the registration.
Tuesday, January 12, 2016
We have found good BiModal match of the Histogram. Having two curves (Gaussian or Laplacian) what is the suitable algorithm to choose the threshold? Presently we choose the lowest point between the peaks of two components, but now I have doubts about this. Should it be the intersection of 2 curves instead?
Monday, January 11, 2016
Proposed semi-automatic "breast\chest wall" segmentation:
One way is to segment OUT the chest wall, after that breast segmentation is a simple EdgeWave operation.
To segment the chest wall:
1. On every 5th slice, draw the chestwall boundary as an ROI (see pic below). In this prototype I recommend the boundary starting and ending at the margins of the image (later on we can eliminate this).
2. I will provide a specialized operation "MainMenu>Applications>Breast>Segment Chest wall from Contours". Internally this operation would perform completing the contour, and then "Fill & Morph convex" to fill the skipped slices.
3. Result of this operation would be a "CHEST ROI" that could be excluded from the image. Then we would simply apply the EdgeWave to segment out the Air.
4. Manual processing time should be <1 min. Computing time is <20 sec.
One way is to segment OUT the chest wall, after that breast segmentation is a simple EdgeWave operation.
To segment the chest wall:
1. On every 5th slice, draw the chestwall boundary as an ROI (see pic below). In this prototype I recommend the boundary starting and ending at the margins of the image (later on we can eliminate this).
2. I will provide a specialized operation "MainMenu>Applications>Breast>Segment Chest wall from Contours". Internally this operation would perform completing the contour, and then "Fill & Morph convex" to fill the skipped slices.
3. Result of this operation would be a "CHEST ROI" that could be excluded from the image. Then we would simply apply the EdgeWave to segment out the Air.
4. Manual processing time should be <1 min. Computing time is <20 sec.
Friday, January 8, 2016
Thursday, January 7, 2016
Mouse Brain, CT-PET-Atlas workflow.
1. Load Atlas once for the whole study session. Minimize the View, so it is out the way and reduce screen clutter. You don't need to open Atlas for every registration.
2. Load CT-3D volume with landmarks present
3. Load PET-4D volulume
(steps 2,3 in any order)
4. Choose "MainMenu>Applications>Mouse Brain Atlas-PET-CT workflow"
5. After brief processing only one document will remain that contains
CT,PET and several ROI layers.
6. Press F4 to bring up the curve dialog, this might take up to 1 min since there are many ROIs present. You will see something like below:
1. Load Atlas once for the whole study session. Minimize the View, so it is out the way and reduce screen clutter. You don't need to open Atlas for every registration.
2. Load CT-3D volume with landmarks present
3. Load PET-4D volulume
(steps 2,3 in any order)
4. Choose "MainMenu>Applications>Mouse Brain Atlas-PET-CT workflow"
5. After brief processing only one document will remain that contains
CT,PET and several ROI layers.
6. Press F4 to bring up the curve dialog, this might take up to 1 min since there are many ROIs present. You will see something like below:
Wednesday, January 6, 2016
Tuesday, January 5, 2016
Monday, January 4, 2016
Saturday, January 2, 2016
Friday, January 1, 2016
Wednesday, December 30, 2015
Tuesday, December 29, 2015
Thursday, December 24, 2015
FireVoxel Build 204 is released.
1. Fixed the SaveDicom defect
introduced by the DeIdentifier code.
2. AutoFocus 3D registration:
when the Target volume is ROI, allow to use it as a Target ROI role two (so it
serves two purposes
3. T1-EPI-PET lesion workflow:
added an option to register the whole lesion ROI at once ("3D
Mode").
4. "Dialog RoiStats4D : Save
Curve" function: in case of 4D ROI added information about the
volume of the ROI for each timepoint.
5. When dynamic
dimension="TIME", we output the time values as a difference from the
initial timepoint.
6. EdgeWave resulting layer name
generation - improved with adding the name of Dynamic component in case of the
4D volumes.
7. EdgeWave on near-isotropic
lung volume "shifted-y-axis" defect: was caused by slightly
different definition of "isotropic" between different software
modules.
8. Defect "View Projection
of the Selected Entity": fixed defect when specifying projection produced
an immediate crash.
Wednesday, December 23, 2015
Tuesday, December 22, 2015
Wednesday, December 16, 2015
FireVoxel Build 203 is released.
1. Corrected the defect when .IM file is loaded that was missing the units info.
2. Fixed defect that presented itself as cropping failure.
3. Fixed: 3D Paintbrush, defects in Pint\Erase function on multiple projections:
4. "Deidentify DICOM folder" function: fixed defect when the DICOM structure of resulting file set was lost after de-identification.
5. EdgeWave4D: enabled functionality to process all of the timepoints of the 4D volume individually and to output a ROI-4D.
1. Corrected the defect when .IM file is loaded that was missing the units info.
2. Fixed defect that presented itself as cropping failure.
3. Fixed: 3D Paintbrush, defects in Pint\Erase function on multiple projections:
4. "Deidentify DICOM folder" function: fixed defect when the DICOM structure of resulting file set was lost after de-identification.
5. EdgeWave4D: enabled functionality to process all of the timepoints of the 4D volume individually and to output a ROI-4D.
Tuesday, December 15, 2015
Monday, December 14, 2015
Sunday, December 13, 2015
Saturday, December 12, 2015
Friday, December 11, 2015
FireVoxel Build 202 is released.
1. Corrected the 3D Paintbrush functionality for
volume editing in 3 orthogonal projections.
Now the cursor and the result of the drawing are correctly updated in
all projections.
2. Corrected the code responsible for recalling
the state and the position of the window on the startup.
3. Histogram thresholding with BiGauss using
Ratio: algorithm was implemented. The goal was to process the FGT-segmentation
cases which were not processed by the Z-alg.
4. Bigauss with Ratio histogram split: implemented the rebinning to a smaller
#bins=128 to x10 speedup on FGT
segmentation.
5. Global Optimization Framework: implemented major improvement to the
algorithm that allows to reduce the number of candidates by x100. In 6-dimension gaussian fit, after only 500K
iterations this resulter in remaining parameters subspace of only 1e-14 of the
original (by area).
6.
User Interface "Split ROI with
Threshold" function: Integrated the
"BiGauss with Ratio" method to work seamlessly.
Thursday, December 10, 2015
Tuesday, December 8, 2015
Sunday, December 6, 2015
Histogram thresholding with BiGauss using Ratio: algorithm was implemented. The goal was to process the FGT-segmentation cases which were not processed by the Z-alg.
First doublechecked that in case of clear peaks the result is as good or close as Z-alg:
First doublechecked that in case of clear peaks the result is as good or close as Z-alg:
![]() |
| case ABBR: histogram split |
![]() |
| case ABBR: thresholding segmentation |
![]() |
| case BARA: histogram split |
![]() |
| case BARA: threshold seg,mentation |
![]() |
| case BARZ |
Sunday, November 29, 2015
Monday, November 23, 2015
Build 201A is released.
Fixed the defect when the ANALYZE file is loaded as the ROI layer and FireVoxel asks to specify modality even though the main volume already has the modality specified.
Extended the range of file extensions accepted under the "Load RAW" function.
Enabled the "sticky note" prompt for the 1st and last buttons of the main toolbar.
F11 - "Advance to next Landmark" function: corrected the defect so it changes to correct slice and landmark is now visible.
Fixed the defect when the ANALYZE file is loaded as the ROI layer and FireVoxel asks to specify modality even though the main volume already has the modality specified.
Extended the range of file extensions accepted under the "Load RAW" function.
Enabled the "sticky note" prompt for the 1st and last buttons of the main toolbar.
F11 - "Advance to next Landmark" function: corrected the defect so it changes to correct slice and landmark is now visible.
FireVoxel Build 201 is released.
Reenabled ABT on all subtests.
"Deidentify DICOM folder": fully
parallelized and optimized.
Implemented initial version of "Deidentify DICOM
folder" User-level function
ABT: SaveDICOM subtest: Fixed the defect that
was introduced during the DICOM API changes during the FGT-segmentation
project.
Layer Control Dialog>Load RAW: enabled
loading of the .NII files as a layer.
Global Optimization: "BiGauss Histogram
Split" cost function, changed the calculation arrangement to improve the
speed of calculation\convergence about x2. In interval math, the
Square(A)/Square(B) should be replaced instead with Square(A/B) for
better convergence (A,B are intervals).
Global Optimization framework: improved the
memory handling so only a single generation is stored for one split iteration,
reducing memory by x2
Improved reporting of Max Total and Max Block
memory allocation.
Fixed the thread safety defect in MonoExponential
fit function for Global optimization.
Fixed the parallel version of Global Optimization.
Now all the Dynamic Framework subtests are checking out OK.
Dialog RoiStats3D: Added a histogram bin tracker
feature. User moves the mouse over the histogram and corresponding bin
value and bin count are displayed.
Dialog RoiStats3D: fixed the defect when the
displayed histogram span was set with incompletely taking the ROI info into
account.
Main Menu>ROI>Load Vector ROI function.
The last used directory is now remembered within the session. It is also
saved into the configuration file between the sessions.
Layer Control dialog: Implemented basic
Copy\Paste volume operation to move the layers between documents.
Implemented and exposed GUI for the additional
options of histogram thresholding. Global optimization framework: full
parallelism of the main loop. This allow the application programmer not
to bother with parallelizing the cost function thus greatly simplifying the
usage.
Dual peak (bi-modal?) histograms: implemented
an initial version of algorithm that find an optimal representation of
histogram as the sum of 2 gaussians. Global optimization framework is
used.
DicomTree load: added extra diagnostics when
composite series are present but some files are missing so the logical
structure could not be constructed.
Mouse PET dynamic dataset (from Jean): latest
version of FireVoxel loads it without problems as a dynamic volume
(33x26x26 with 48 timepoints)
Dialog RoiStats3D: integrated algorithm
selection tool {Otsu,Zigalga} for segmenting the Histogram. Developed a
prototype of a novel Histogram splitting algorithm, comparing to
Otsu on the breast
Registration by DICOM-tags only. Corrected
the defect so that the Window\Level settings after the operation are exactly
those of the source volume
DICOM loading of the files containing
Rescale\Inrtercept information: Improvement to user interface was done.
Even if the Rescale\Intercept are "trivial" (i.e. 1/0) we
now ask the user if the volume has to be loaded as INTEGER or REAL. In
case of REAL user needs to specify additional offset\factor.
Pressing SHIFT button is NOT required anymore during the "Select by rectangular Net" function when mouse is dragged and selects all the objects within the rectangular area.
Pressing SHIFT button is NOT required anymore during the "Select by rectangular Net" function when mouse is dragged and selects all the objects within the rectangular area.
Change of the workflow for using the Window
Level\Width tool. User now has to press the new Window
Level\Width button on the Toolbar. This puts FireVoxel into the
"Window Level\Width" mode with the appropriate Mouse Cursor change.
Then user can change the Window Level\Width several time. On
Pressing ESC the cursor changes back to "SELECT" mode.
!Important: This also fixes error when then View Filter Window
Level was randomly changed after loading the Vector ROI. This was
happening because the Mouse Move command is sent after the closing the Open
VROI file dialog. This Mouse Move was erroneously interpreted as the
request to change the Window Level\Width.
RoiStats 3D could be applied to specified range of
values in data. Specify "Value Interval [Start,End]" parameters.
Implemented fully functional version of Breast FGT
measuring workflow.
Fixed the defects with the Status bar progress indicator in
VolChangeResolution and VolN3 functions.
Fixed the defects with the Status bar progress indicator in
VolChangeResolution and VolN3 functions.
Fixed defects with the progress status bar text
messages while loading the FVX document.
MainMenu>Volume>Crop with 4D ROI- all layers.
"Enabled" flag is now copying correctly for all the layers in
the entity.
Layer Control Dialog> Load DICOM : now
using current UserOptions.LoadDicomFolder settings.
MainMenu>ROI>List All VROIs function now
displays the message "No VROIs are present".
Provided an initial verison of the Breast FGT Batch
processing dialog.
Saturday, November 21, 2015
Friday, November 20, 2015
Thursday, November 19, 2015
Tuesday, November 17, 2015
Saturday, November 14, 2015
Friday, November 13, 2015
Monday, November 9, 2015
Saturday, November 7, 2015
Friday, November 6, 2015
Very preliminary test was performed of optimal histogram thresholding using "Bimodal Gaussian representation". Case ZAMB. Approximation done by Global optimization in R6 space, with 1M iterations in this experiment.
![]() |
| ZAMB: original histogram for Breast Mask |
![]() |
| Original histogram thresholded by OTSU algotithm |
![]() |
| BImodal Gaussian approximation and simple minima threshold |
![]() |
| Bimodal approximation threshold on the original histogram |
Thursday, November 5, 2015
Monday, November 2, 2015
On the sample brain from EdgeWave manual:
1. applied N3
2. performed EdgeWave segmentation using default parameters.
3. Brain mask was automatically thresholded to get WM\GM masks.
4. First Otsu then Z-algorithm were used.
1. applied N3
2. performed EdgeWave segmentation using default parameters.
3. Brain mask was automatically thresholded to get WM\GM masks.
4. First Otsu then Z-algorithm were used.
![]() |
| Auto histogram separation over the Brainmask: Otsu vs. Z-algorithm |
![]() |
| Resulting Wm\Gm masks: Otsu vs. Z-algorithm |
Subscribe to:
Posts (Atom)















































