Search This Blog

Sunday, January 31, 2016

LayerControl dialog: updated behavior so that the Name editing requires Doubleclick, while "ROI advance to midslice" requires "Ctrl+Doubleclick".
FireVoxel Build 207 is released.

1. Dialog Layer Control: When there is a ROI layer present - user may doubleclick on the layer name.  Current Z-slice of the entity would be changed to the mid-Z slice of that entire ROI (at that current timepoint in case of 4D ROI).
2. 3D Paintbrush:  enabled the drawing with the Radius=0
3. Use Interface options dialog:  removed the "Synchronized cursor" option.
4. Dynamic Modelling:  Input Function correlation model:  fixed the bug and checked the correctness on the identity problem.

Friday, January 29, 2016

Femur registration, attempt to register without the follow-up segmented ROI.
Attempted the following scenario:
baseline Target+ROI (WALS1)  is registered with the Source WALS2 only (no ROI).

Mutual Info measure was used.  On the screenshot below you can see the WALS2 registered and then overlayed with the WALS1-ROI.  Visually appears to be a good match.
This makes it very likely that follow-up ROI would not be required for registration.

One downside - it took about 20 min, vs.  5 min on ROI->ROI scenario.

WALS2 (transformed after registration) overlayed by the WLAS1-ROI (static as the Target)

Dialog Layer Control: Major new feature and behavior change:
When there is a ROI layer present - user may doubleclick on the layer name.  Current Z-slice of the entity would be changed to the mid-Z slice of that entire ROI (at that current timepoint in case of 4D ROI).  FilmView would be always turned off immediately.

Old functionality:  before the doubleclick would bring the name edit control.  This requires now pressing the Control+Dblclick button.

Thursday, January 28, 2016

3D Paintbrush:  enabled the drawing with the Radius=0
FireVoxel Build 206A is released.
Use Interface options dialog:  removed the "Synchronized cursor" option.
Dynamic Modelling:  Input Function correlation model:  fixed the bug and checked the correctness on the identity problem.
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

Visual Correlation (?) comparison between supplied AIF and 1-voxel ROI

note: the signal baseline in this particular dialog = 186


Wednesday, January 27, 2016

IVIM free model fix:  was always returning "0" as the residual of the fit.
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".

Tuesday, January 26, 2016

Mouse brain  PET-CT-Atlas workflow:  verified that workflow works with the complete 20-region atlas.

Produced a Mouse brain atlas of all 20 regions that can be now processed by the Layer Control dialog.
Expanded current Layer Control dialog to 22 layers to accommodate an entire Mouse Brain Atlas.
Fixed the .IM Save\Load problem.  When original file (Atlas template) was provided it had invalid Unit Names for the voxel.  After Saving it to MIDAS, loading as a layer and the saving to FVX was causing the crash loading the resulting FVX file.

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

Code improvement:  moved the CDlgLayerCtrl declaration within the class source module.

Friday, January 22, 2016

Dynamic Modelling module:  implemented the Parametric map "Input function correlation"

Thursday, January 21, 2016

Femur ROI registratio: Implemented a dedicated menu item with parameters suitable for this application.  Default parameters provide speed of under 5 min on the WALS1-WALS2 sample.
Speed is variable and defined by the precision of the AutoFocus stage (such as rotation precision and range)


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.

Thursday, January 14, 2016

Femur registration of Bone ROI->ROI using "Signal Difference" Measure.  Matching result is good but takes more than 1hr.


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).
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.
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.
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.
"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. This rule does not use actual histogram values


Further extensions are possible with histogram value usage.

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?


BiModal Laplacian histogram segmentation (first result):
This is simplistic global optimization (without extremum checking so did not perform as well as BiGaussian with the same number of iterations = 200K)


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.



Sunday, January 10, 2016

CT-PET-ATLAS workflow: Register ALL:  fixed the crash defect on case W73


Friday, January 8, 2016

"Deep breathing" lung segmentation case:  no leaks after BiCal+EdgeWave




Some very approximate parameters for BiCal - would work in the wide range.
BiCal parameters


EdgeWave (with seed) parameters


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).


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:


Mouse Brain   CT-PET-Atlas workfow:  finished the integrated "one-click" registration function.  Resulting entity is ready to get the PET curves and save them (to text file)

Wednesday, January 6, 2016

Prepared first integrated mouse brain Atlas with ROI regions named and the 4 Landmarks included.  This is ready for the final processing.


Added the functionality to extract only desired regions from the Atlas.  User enters the desired region indices separated by commas.  Result: they will appear as the new ROI layes named "atlas region #x" according to the specified indices.


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.

Tuesday, January 5, 2016

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.



Monday, January 4, 2016

Histogram model-based segmentation {BiGauss,BiLaplace}: Implemented initial framework to show the modelling curves overlaid on top of the histogram. Notice the threshold is chosen as the midpoint between 2 peaks.


Sunday, January 3, 2016

Implemented some improvements to Global Optimization algorithm and code.

Saturday, January 2, 2016

Verified correct result of Histogram segmentation using "Bigauss with Ratio" method on the sample from EdgeWave manual.  BiGauss ration interval was [1.1,2]. This did not seem to work on Henry's computer.

Friday, January 1, 2016

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.