Added corrections to the general registration algorithm for URAL measure:
a) Gradient withing URAL-radius to the Volume boundaries are set to 0 to avoid
introducing non-existing features that might steer registration.
b) If one of the timepoints in registration is binary (as sometimes in hybrid scenario), the URAL_NORM=Linear is always chosen for that specific timepoint independent of what
norm is specified by the user.
Search This Blog
Friday, September 26, 2014
FireVoxel Build 154 is released.
1. Added the BrainCT
workflow (MainMenu>Applications).
Added new function
"BrainCT>Segment Intracranial cavity".
2. EdgeWave dialog: corrected a major UI error. When no
seeds are present, the logic of selecting the Connected Component choices
(radiobuttons) was damaged.
3. Corrected
interface and initial parameters to process the CT-brain scans without leaks.
4. Toft's model (#8):
re-arranged the optimization variables to improve the solution bounds.
5. Introduced a “Balanced solution” concept for
parametric fitting and Toft’s model in particular.
6. Tofts modified
model (k-trans,Ve,Va): implemented changes to model similar to the
regular model.
7. Corrected
defect: Unable to "Crop 4D All Layer" \ "Crop 4D Active
Layer" using the vector ROI.
8. Added ABT
subtest for "Tofts modified (K-trans,Ve,Va)" model.
9. Fixed major
bug in registration of real-valued volumes (=PET).Monday, September 22, 2014
Tofts model (but general issue important to all models, incl. Eric's IVIM), this problem originated in Henry's report of very high Ve (>18000) in particular ROI fit.
During the parameter fitting, there might be numerous solutions (both voxelwise and Single ROI), whose Minimization Cost differ by the miniscule amount (<0.01 in relative terms of Absolute Minimum Cost).
We "Balance" the solution by considering all such solutions equally valid candidates. Then several logics could apply.
Below is the result of one such "Balanced" solution, on the same AATH dataset. Note, the balancing is done on the level of the single voxel without taking neighboring voxels into account.
New Option is added to the Parmetric Model processing: "Balance Solution" - ON\OFF.
During the parameter fitting, there might be numerous solutions (both voxelwise and Single ROI), whose Minimization Cost differ by the miniscule amount (<0.01 in relative terms of Absolute Minimum Cost).
We "Balance" the solution by considering all such solutions equally valid candidates. Then several logics could apply.
Below is the result of one such "Balanced" solution, on the same AATH dataset. Note, the balancing is done on the level of the single voxel without taking neighboring voxels into account.
New Option is added to the Parmetric Model processing: "Balance Solution" - ON\OFF.
![]() |
| K-trans (regular) |
![]() |
| K-trans (Balanced) |
![]() |
| Ve (regular) |
![]() |
| Ve (Balanced) |
![]() |
| Residual (regular) |
![]() |
| Residual (Balanced) |
Sunday, September 21, 2014
Wednesday, September 17, 2014
Tuesday, September 16, 2014
FireVoxel Build 152 is released.
1. Corrected the defect: when new document & file are created as a result
of the operation, the document file name may exceed 256 characters which is
the MFC limit for VisualC++ 2010.
2. Implemented the Registration by DICOM tags only.
3. Completely re-engineered the AATH model.
4. Added the ABT subtest for the AATH model.
5. Added the ABT subtest for Blood vessel segmentation.
1. Corrected the defect: when new document & file are created as a result
of the operation, the document file name may exceed 256 characters which is
the MFC limit for VisualC++ 2010.
2. Implemented the Registration by DICOM tags only.
3. Completely re-engineered the AATH model.
4. Added the ABT subtest for the AATH model.
5. Added the ABT subtest for Blood vessel segmentation.
Monday, September 15, 2014
Friday, September 12, 2014
Thursday, September 11, 2014
Another look at the Portal Vein residual (possible) movement after the registration. Part of portal vein was manually drawn on 6 slices of the initial timepoints. Corresponding TAC (VIF) was generated. If there would be a substantial movement out of plane for the PV, we would have observed sharp iregularities in this TAC. However, beside one bump in the last quater the curve is very smooth which indicates that PV majorly remains in the same position.
Tuesday, September 9, 2014
FireVoxel Build 151 is released:
https://drive.google.com/file/d/0B2lI9iEKOqv6bHEyVlFwY2MybUU/edit?usp=sharing
https://drive.google.com/file/d/0B2lI9iEKOqv6bHEyVlFwY2MybUU/edit?usp=sharing
1.
Modified
saving of ROIs to ANALYZE format to allow ImageJ to properly display the ROIs.
2.
Fixed
the crash in "MainMenu>ROI>Convert 3D to 4D" function.
This was caused by incorrect creation of the DICOM header for new 4D Roi.
3.
Re-enabled
ABT 8 subtest related to registration after the change in the core Autofocus
registration.
4.
Mouse
DCE (9 timepoint mouse brain axial dataset). Determined the set of
parameters that provides good quality registration and set these parameters as
the default under the MainMenu>MouseDCE>Register using URAL.
5.
DCDI
workflow: released 1st version of the complete documentation.
6.
Finalized
the DCDI workflow corresponding to the documentation
7.
Fix: Loading Diffusion datasets with DCMTK
(Siemens private b-value tag):
Loading Diffusion datasets with DCMTK (Siemens private b-value tag):
VM (value multiplicity) in DCMTK for the VR="OB" is always set to 1, while
it needs to be variable. This affects the private Siemens tag for B-value
so only the first character is read (i.e. "4" instead of "400").
provided a general workaround for VR = {OB,UN}
Monday, September 8, 2014
Sunday, September 7, 2014
AutoFocus Registration (3D and 4D): substantially improved the design and implementation of the AutoFocus algorithm when the Target ROI is positioned close to the boundaries of the Volume.
Made additional corrections affecting the Gradient Measure (URAL), to always inflate Target ROI (internally and implicitly) by 1 voxel to account for the vertice of the lattice vs. center of the lattice representation of the gradients.
Both changes have resulted in much better registration in Liver DCDI case.
Made additional corrections affecting the Gradient Measure (URAL), to always inflate Target ROI (internally and implicitly) by 1 voxel to account for the vertice of the lattice vs. center of the lattice representation of the gradients.
Both changes have resulted in much better registration in Liver DCDI case.
![]() |
| a) before registration on the mid-sagittal slice b) after registration |
Thursday, September 4, 2014
Wednesday, September 3, 2014
Tuesday, September 2, 2014
FireVoxe Build 150 is released.
download here:
https://drive.google.com/file/d/0B2lI9iEKOqv6ZDhESTJrZ3dHeWM/edit?usp=sharing
1. RoiStats3D dialog box: fixed the crash after closing the dialog.
2. AutoFocus4D registration dialog box: fixed the drop-down combo box to expose all
the interpolation options during the registration.download here:
https://drive.google.com/file/d/0B2lI9iEKOqv6ZDhESTJrZ3dHeWM/edit?usp=sharing
1. RoiStats3D dialog box: fixed the crash after closing the dialog.
3. Dialog "ROI split by threshold": expanded to work with the Parametric maps.
4. Dialog Split ROI by threshold: added "%" information for 2 separated segments.
5. Liver DCDI blood vessel segmentation: finalized the function. User starts with no parameters, default 20% of the voxels are chosen as a blood vessel. Then interactive dialog pops up when user can interactively adjust that threshold based
6. Expanded the RoiStats3D dialog, so it could be activated with only ROI present (i.e. no underlying
volume).
This is useful for the ROI morphological evaluations (number of voxels,
blobs, etc).
7. ABT: created a subtest that would test Core
dialogs for not crashing.
Added the dialogs to subtest a)
RoiStat3D b) RoiStat4D
Monday, September 1, 2014
Sunday, August 31, 2014
Saturday, August 30, 2014
Friday, August 29, 2014
Wednesday, August 27, 2014
Tuesday, August 26, 2014
FireVoxel Build 149 is released.
Download at:
https://drive.google.com/file/d/0B2lI9iEKOqv6N2U0a08taG9ZM2c/edit?usp=sharing
1. Sulci-ROI segmentation: implemented function "Wave Distance" from the Brain mask ROI surface to its convex hull.
2. Implemented the Support Module for measuring the Wave Distances in various scenarios.
3. Prototype of Sulci segmentation from GM-CSF interface.
4. Fixed the crash related to DICOM features: when volume is transformed with the dimension change (or similar operation),.
5. ABT: new subtest for Rotate+Scale of large volumes with all possible interpolations.
6. Volume Affine transform: optimized memory usage and workflow so it is possible to have a destination volume exceeding 1.5 billion voxels.
7. Volume histogram calculation: optimized the memory workflow so very large volumes could be processed.
8. DICOM load of very large: optimized memory workflow so no memory failure happens on 1.5 billion voxel volume.
9. Volume Arithmetic operations on very large volumes: Optimized the memory workflow so the operations do not fail on volumes with upto 1.5 billion voxels timepoint.
10. SIEMENS De-identified DICOM load: corrected the logic so the 4D dataset could be logically combined and loaded properly.
11. Added User Interface-level functions:
a)Measure Surface Wave distance to Inside of the ROI
b)Measure Surface Wave distance to Outside of the ROI
Download at:
https://drive.google.com/file/d/0B2lI9iEKOqv6N2U0a08taG9ZM2c/edit?usp=sharing
1. Sulci-ROI segmentation: implemented function "Wave Distance" from the Brain mask ROI surface to its convex hull.
2. Implemented the Support Module for measuring the Wave Distances in various scenarios.
3. Prototype of Sulci segmentation from GM-CSF interface.
4. Fixed the crash related to DICOM features: when volume is transformed with the dimension change (or similar operation),.
5. ABT: new subtest for Rotate+Scale of large volumes with all possible interpolations.
6. Volume Affine transform: optimized memory usage and workflow so it is possible to have a destination volume exceeding 1.5 billion voxels.
7. Volume histogram calculation: optimized the memory workflow so very large volumes could be processed.
8. DICOM load of very large: optimized memory workflow so no memory failure happens on 1.5 billion voxel volume.
9. Volume Arithmetic operations on very large volumes: Optimized the memory workflow so the operations do not fail on volumes with upto 1.5 billion voxels timepoint.
10. SIEMENS De-identified DICOM load: corrected the logic so the 4D dataset could be logically combined and loaded properly.
11. Added User Interface-level functions:
a)Measure Surface Wave distance to Inside of the ROI
b)Measure Surface Wave distance to Outside of the ROI
12. Surface Atrophy Depth measurement. Added User Interface function
"MainMenu>Brain>Measure Surface Atrophy depth"
13. Bruker ANALYZE 7.5: added detection of the signed short
integers in ANALYZE file, then offering user an option to treat file as a
Bruker ANALYZE 7.5
14. Corrected the loading of ANALYZE-based
(.img) 4D file (.time).
15. MainMenu> {"Open RAW 3D",
"Open RAW 4D"} functions: added functionality so that last used
extension is remembered and used as the default next time the dialog opens.
16. Completely re-engineered User
Interface and the implementation of the "Aggregate projections"
- {MIP,Surface}
17. Corrected the UI behavios: In EdgeWave,
if Vol+RoI is present, ROI is disabled (invisible), but being
Active ROI was still chosen as the operand.
18. Parametric Map calculation: when
resulting file is loaded, a check is performed if invalid floating point number
is present (INF or NAN), message is then displayed.
19. Dynamic Parametric Map module:
completely re-engineered the Model-1 ("Variation") and added an
ABT validation subtest for this model.
20. Dynamic Parametric Models: Completely
re-engineered Model 4 - "Input Function Distance". Added a
corresponding ABT validation subtest.
21. Dynamic Parametric Models: Completely re-engineered Model 5 - "Custom Time of Active Rise". Added a corresponding ABT validation subtest.
21. Dynamic Parametric Models: Completely re-engineered Model 5 - "Custom Time of Active Rise". Added a corresponding ABT validation subtest.
Corrected the loading of ANALYZE-based (.img) 4D file (.time).
There was an additional typo error in the supplied header in image dimensions.
Also, the header of the .TIME file contains a different resolution (1,1,1 mm) from the information stored inside the individual .img files. (0.075, 0.15, 0.15mm)
There was an additional typo error in the supplied header in image dimensions.Also, the header of the .TIME file contains a different resolution (1,1,1 mm) from the information stored inside the individual .img files. (0.075, 0.15, 0.15mm)
Monday, August 25, 2014
Surface Atrophy Depth meausrement.
Added User Interface function "MainMenu>Brain>Measure Surface Atrophy depth"
Two longitudinal timepoints Time0 (2009) and Time2 (2011) of the same patient's brain were processed.
Step 1.
Brain Mask was extracted using FireVoxel\EdgeWave (after non-uniformity correction using FireVoxel BiCal).
Step 2.
Two Brain Masks were then registered using the Rigid Transform so they are overlaid in the same coordinate system of the Time2
Step 3. For the Brain Mask of the earlier volume (Time0) we calculated the depth from the Surface into the brain (measured in 0.01 mm).
Step 4. That "Depth from the surface" map of Time0, was then projected onto the surface-only BrainMask of Time2. Thus the surface values of the "Atrophy Depth map" were constructed.
One projection was rendered using the primitive rendering ability of the FireVoxel.
Added User Interface function "MainMenu>Brain>Measure Surface Atrophy depth"
Two longitudinal timepoints Time0 (2009) and Time2 (2011) of the same patient's brain were processed.
Step 1.
Brain Mask was extracted using FireVoxel\EdgeWave (after non-uniformity correction using FireVoxel BiCal).
Step 2.Two Brain Masks were then registered using the Rigid Transform so they are overlaid in the same coordinate system of the Time2
Step 3. For the Brain Mask of the earlier volume (Time0) we calculated the depth from the Surface into the brain (measured in 0.01 mm).
Step 4. That "Depth from the surface" map of Time0, was then projected onto the surface-only BrainMask of Time2. Thus the surface values of the "Atrophy Depth map" were constructed.
One projection was rendered using the primitive rendering ability of the FireVoxel.
![]() |
| Depth of Surface atrophy (in 0.01 mm). Transparent voxels are due to FireVoxel's rudimentary volume rendering.
As a next step would try to regenerate the surface using better volume rendering tools.
|
Sunday, August 24, 2014
Friday, August 22, 2014
Wednesday, August 20, 2014
Prototype of Sulci-segmentation from T2-weighted image MS31a_T2 using HullWave algorithm
I had to try BrainMask on T2, was not able to find optimal parameters to generate full BrainMask on T2. But result seems to be good for the upper surface of the brain relevant for Sulci-segmentation.
HullWave works with the binary brain mask obtained from T1,T2 using any segmentation algorithm (FireVoxel\EdgeWave was used in this instance).
I had to try BrainMask on T2, was not able to find optimal parameters to generate full BrainMask on T2. But result seems to be good for the upper surface of the brain relevant for Sulci-segmentation.
HullWave works with the binary brain mask obtained from T1,T2 using any segmentation algorithm (FireVoxel\EdgeWave was used in this instance).
![]() |
| Map of detected Sulcal depth (in 0.01 mm) |
Volume Affine transform: optimized memory usage and workflow so it is possible to have a destination volume exceeding 1.5 billion voxels. This includes viewing of the resulting volume (rest of the image processing operations is not guaranteed due to 32-bit limits). Added an optional progress indicator during the Affine reslicing.
Tuesday, August 19, 2014
Monday, August 18, 2014
Corrected the crash related to DICOM features: when volume is transformed with the dimension change (or similar operation), new internal DICOM headers have to be rebuilt. Presently it produces a crash because the new number of slices can be bigger.
When volume is reformatted (f.e. changing dimensions), internal DICOM headers were not generated properly for the new volume, producing a crash. Now fixed.
Sunday, August 17, 2014
Prototype of Sulci segmentation from GM-CSF interface.
In the literature two possible approaches are described:
a) Having the Whole Brain (WM+GM) mask, segment Sulci using the GM-CSF interface.
b) Having the separate WM and GM mask, segment Sulci using the WM-GM interface.
MethodA is simpler to implement but there are much more difficult cases many sulci are too narrow to be reflected on the whole Brain Mask.
MethodB is considered more reliable, due to thicker layer of GM, but requires the WM-GM segmentation (not present in FireVoxel at the moment).
Here are the results of MethodA implemented in FireVoxel. Sulci is represented as a color map where color corresponds to the length of the curved path from the "brain hull\envelop" to the particular point in sulcal space (measured in mm).
In the literature two possible approaches are described:
a) Having the Whole Brain (WM+GM) mask, segment Sulci using the GM-CSF interface.
b) Having the separate WM and GM mask, segment Sulci using the WM-GM interface.
MethodA is simpler to implement but there are much more difficult cases many sulci are too narrow to be reflected on the whole Brain Mask.
MethodB is considered more reliable, due to thicker layer of GM, but requires the WM-GM segmentation (not present in FireVoxel at the moment).
Here are the results of MethodA implemented in FireVoxel. Sulci is represented as a color map where color corresponds to the length of the curved path from the "brain hull\envelop" to the particular point in sulcal space (measured in mm).
![]() |
| "Curved depth" map in 0.01 mm units. |
Saturday, August 16, 2014
Friday, August 15, 2014
Sunday, August 10, 2014
FireVoxel Build 148 is released.
1. Fixed the defect of crashing (greek) GE DICOM.
2. Fixed the defect with initial document projection when loading the FVX document file.
3. Fixed the crash, when the RAW file picked from the "Recent File List" but actually missing on disk produces the crash.
4. Fixed the load RAW (.im) -> save FVX -> load FVX failure.
5. Fixed the "Simple Model" not displaying the result of Parametric Map calculation.
6. ABT test: added subtest to the "Signal measurements" (#0) model.
7. FireVoxel distribution package: removed redundant libimp5md.dll ( Intel OpenMP)
8. Removed all the usage of Intel Performance Primitives and remove 4 corresponding DLLs from the distribution package.
9. Fixed RoiStats3D dialog error in reporting the Median value of the ROI.
1. Fixed the defect of crashing (greek) GE DICOM.
2. Fixed the defect with initial document projection when loading the FVX document file.
3. Fixed the crash, when the RAW file picked from the "Recent File List" but actually missing on disk produces the crash.
4. Fixed the load RAW (.im) -> save FVX -> load FVX failure.
5. Fixed the "Simple Model" not displaying the result of Parametric Map calculation.
6. ABT test: added subtest to the "Signal measurements" (#0) model.
7. FireVoxel distribution package: removed redundant libimp5md.dll ( Intel OpenMP)
8. Removed all the usage of Intel Performance Primitives and remove 4 corresponding DLLs from the distribution package.
9. Fixed RoiStats3D dialog error in reporting the Median value of the ROI.
FireVoxel Build 147 is released.
1. Dialog RoiStats 4D: corrected the synchronization effect between displayed TAC and the underlying volume window.
1. Dialog RoiStats 4D: corrected the synchronization effect between displayed TAC and the underlying volume window.
2. Blood Vessel map segmentation:
Implemented additional controls to adjust the how aggressive the segmentation
is:
a) Introduced "vessel time
delay" parameter due to dispersion
b) L2-Normalization of TAC comparison,
since the numerical values of TACs and IFs are quite different due to
dispersion and better shape comparison is expected that way.
Parallelized segmentation algorithm.
3. DCMTK
integration: implemented the DICOM Save function.
4. DCMTK
integration: Implemented the DICOM Crop
& Save subtest
5. DCMTK library
is fully integrated.
6. Fixed the RAW
file load defect (initial slice\Film view projection).
Saturday, August 9, 2014
Friday, August 8, 2014
Thursday, August 7, 2014
Tuesday, August 5, 2014
Monday, August 4, 2014
Blood Vessel map segmentation: Implemented additional controls to adjust the how aggressive the segmentation is:
a) Introduced "vessel time delay" parameter due to dispersion
b) L2-Normalization of TAC comparison, since the numerical values of TACs and IFs are quite different due to dispersion and better shape comparison is expected that way.
Parallelized segmentation algorithm.
a) Introduced "vessel time delay" parameter due to dispersion
b) L2-Normalization of TAC comparison, since the numerical values of TACs and IFs are quite different due to dispersion and better shape comparison is expected that way.
Parallelized segmentation algorithm.
Sunday, August 3, 2014
Saturday, August 2, 2014
Thursday, July 31, 2014
FireVoxel Build 146A is released.
1. FVX file format, version4: implemented format extension to be able to save current dynamic model and the Input functions. This would be a great productivity multiplier both for end-User and developer.
2. General 4D "Blood vessel segmentation" algorithm and UI with User-provided input function(s).
3. Implemented and added an UI item "MainMenu>Segment>Segment dark ridges" which complements the existing "Segment bright ridges" functionality.
4. Implemented Liver DCDI Blood Vessel Segmentation 3D: this is an alternative algorithm that uses a single pre-contrast timepoint assuming the vessels are darker than the liver tissue. Existing "Dark Ridge detection" algorithm is used.
5. Fixed a defect in the IDIF function.
6. Added several "Keep Highest voxels for each individual timepoint" options as specified by Jean Logan.
1. FVX file format, version4: implemented format extension to be able to save current dynamic model and the Input functions. This would be a great productivity multiplier both for end-User and developer.
2. General 4D "Blood vessel segmentation" algorithm and UI with User-provided input function(s).
3. Implemented and added an UI item "MainMenu>Segment>Segment dark ridges" which complements the existing "Segment bright ridges" functionality.
4. Implemented Liver DCDI Blood Vessel Segmentation 3D: this is an alternative algorithm that uses a single pre-contrast timepoint assuming the vessels are darker than the liver tissue. Existing "Dark Ridge detection" algorithm is used.
5. Fixed a defect in the IDIF function.
6. Added several "Keep Highest voxels for each individual timepoint" options as specified by Jean Logan.
Wednesday, July 30, 2014
Monday, July 28, 2014
Implemented Liver DCDI Blood Vessel Segmentation 3D: this is an alternative algorithm that uses a single pre-contrast timepoint assuming the vessels are darker than the liver tissue. Existing "Dark Ridge detection" algorithm is used. Existing Ridge dialog box is called.
Two ROIs are returned one for organ and the other for blood vessel. There is no differentiation between Arterial and Venous vessels as in Segment4D variant.
Two ROIs are returned one for organ and the other for blood vessel. There is no differentiation between Arterial and Venous vessels as in Segment4D variant.
Subscribe to:
Posts (Atom)


































