forked from BRAINSia/ITKSoftwareGuide
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
821 lines (510 loc) · 20 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
Remove all references to perl PERL
Get output images only produced in BINARY_DIR.
-- (DONE) Have python code line extractor throw warning when lines are too long to print.
-- Reduce line length in ITK proper
-- Figure out which pictures need "flipping" and how to do that with imagemagik.
-- Order all tex files in SoftwareGuide/Latex/*.tex to be ordered when listed with a ##-${filename} prefix.
-- Re-order chapters
-- Add "Remote Module documentation"
-- Remove "CenteredTransforms" from all examples in book.
-- Remove redundant information.
-- Describe Modularization as part of a ITKv3->ITKv4 transition appendix
-- Update Acknowledgements
-- Test clean builds
-- Suport "USE_SYSTEM_ITK"
==========================================================
This is a list of potential topics to be added to the Software Guide.
Chapter 1
Add more on the "Data" section: expand it in order to mention
- IBSR repository: add a paragraph, how to get their data,
how to read it with ITK. And add a \ref{} to ImageIO
chapter and MetaImages.
- BrainWeb repository: add a paragraph, how the get their data.
how to read it using MetaImage.
- MIRC (RSNA). www.rsna.org/mirc add a paragraph about it.
Mention that the reader has to go to the ImageIO chapter in order
to learn about all the fileformats in ITK.
Chapter 2
- Update list of compilers
Intel (Linux, Windows), 7.1, 8.0
Sun native CC 5.6
SGI 7.4 (??) check with Bill Lorensen
Mac GCC 3.3
Free VC++
Visual Studio 6.0 , 7.0, 7.1
Borland 5.5
MinGW gcc
Cygwin gcc
- Configuration:
Add CMake screen shots for the Mac (from Jon).
Chapter 3
Check with Will...
Chapter 4 Data Representation
(1) Luis
- 4.1.4 Update it to mention OriginType and SpacingType instead of
arrays of doubles and/or floats.
(1) Luis
- 4.1.7 Import Data to image
Take from the tutorial and build up this section
http://www.itk.org/CourseWare/Training/GettingStarted-V.pdf
Explain how to put an ITK pipeline inside a C function and
prevent the output image from being destroyed.
Add... source code examples to the CVS Examples directory.
Mesh (Karthik)
(1)
- Double check that the AutomaticMesh example works as advertised...
[Status: done.
It works
]
(1)
- Double check that all the examples are still working...
[Status: done
Checked.. work
]
(3)
- Check with Will about the AutoPointer... maybe remove the
notation of TakeOwnership,... check with vtkAbstracCell.
(2)
- Add example on how to use the Neighborhood links
BuildCellLinks()
[Status: Pending
Approporiate Example ?
]
(1)
- Add section on the Simplex
(check Leila Baghdadi, and Thomas Boettger).
(5)
- Graph cuts (liver segmentation).
check mailing list archives, check the Voronoi.
Chapter 5 Spatial Objects
(Julien+Stephen outsourcing) + a few pages in 1 month.
Coordinate with Julien Jomier at UNC.
They plan to update this section.
e.g. add the ImageMaskSpatialObject.
PolygonSpatialObject ??
Chapter 6 Filtering
(1) Karthik
- in Thresholding add examples:
OtsuThresholdImageCalculator (using it alone) [Status: Done]
OtsuThresholdImageFilter (already there, but needs refinement). [Status: Done]
OtsuMultipleThreshold Calculator (using it alone).
OtsuMultipeleThreshodl Filter (add example + filter).
[Status: Done]
[ToDo: Maybe update Otsu Multiple Threshold filter example to the new itkOtsuThresholdFilter]
added by Padfiled. The earlier one used the ThresholdCalculator class
cvs add Art/OtsuThresholdImageFilterOutput.png
cvs commit Insight/Examples/Filtering/OtsuMultipeleThresholdImageFilter.cxx
]
(5)
- 6.2.1 Casting filters (low priority)
spliting CastImageFilter into 4 separate .cxx
and check if we have other casting filters...
(1)
- Double check equation pdf-page 147. Equations were correctd.
(2) [Add 1 and ask Jim what to choose]
- Mathematical morphology,
add Examples for the new filters that Jim Miller (GE)
added recently
GrayScaleFillHoleImageFilter
GrayScaleGrindPeakImageFilter
GrayScaleConnecteOpeningImageFilter
GrayScaleConnecteCloseningImageFilter
GrayScaleGeodesicDilateImageFilter
GrayScaleGeodesicErodeImageFilter
(1) Karthik
- FFT examples. (Fourier)
Maybe add a couple more examples...
at least comment the existing ones
and generate output example images.
[Status: Postponed. Necessary ??
One example exists and works. Maybe add some figures.
Rescale FFT outputs to log and display, Change example, add logMappingFuctor ?]
(1) Luis
- RecursiveGaussianImage filter DC component bug, keep track
of it during the example. check BUG in the bug tracker.
- Voting filters
(2) Luis
Add examples for Voting filters
HoleFilling
(2) Luis
- Add example for BinaryMedianImageFilter, take a noisy
segmentation (e.g. plain thresholding) and then post-
process it with this filter.
[Status: done.]
[ToDo: Add Examples/Filtering/BinaryMedianImageFilter.cxx to CVS]
[Add BinaryMedianImageFilterOutput.jpg to SoftwareGuide/Art/]
[Add BinaryThresholdImageFilterOutput.jpg to SoftwareGuide/Art/]
(3)
- Discrete Gaussian needs to fix the graphic according
to the original. Check with Jim Miller, to get the
paper.
- Check with Andy : capture the command line used for running
the regression testing and paste it on Latex.
(1) Karthik
- Edge preserving filtering: move the Median filter here,
and show the effect of running many iterations of a median.
Explain its relationship to Voting filters.
[Ask Luis about Recursive Filter discrepancy ?? What's going on ?]
[Status Done:
cvs commit SoftwareGuide/Latex/Filtering.tex]
(3) Luis
- MinMaxCurvatureFlowImage check this example,
Ask Lydia what was wrong with the example.
(1) Karthik
- Signed distance based on running Danielsson twice,
Mention that the same can be done with ReinitializeLevelSetImageFilter
...maybe add an example...
http://www.itk.org/Insight/Doxygen/html/classitk_1_1ReinitializeLevelSetImageFilter.html
Check with Lydia (Brain Allen Institue) and/or Josh Cates (Utah)
[Status: Done]
[Added Insight/Code/BasicFilters/itkSignedDanielssonDistanceMapImageFilter.hxx,
Insight/Code/BasicFilters/itkSignedDanielssonDistanceMapImageFilter.h
Testing/BasicFilters/SignedDanielssonDistanceMapImageFilterTest.cxx
to repository]
[ToDo: Commit
cvs add Insight/Examples/Filtering/SignedDanielssonDistanceMapImageFilter.cxx
cvs add SoftwareGuide/Art/SignedDanielssonDistanceMapImageFilterOutput.png
cvs add SoftwareGuide/Art/Circle.png
cvs commit /InsightDocuments/SoftwareGuide/Examples/CMakeLists.txt
]
(1) Luis
- Geometric Transform Filters
Double check that the changes in CenteredTransforms are not breaking
any code, and that the comments are appropriate.
(2) Will
- MRI Bias correction from InsightApplications (Martin Styner).
Chapter 7 IO
(1) Karthik
- Update Figure 7.3 to add all the known fileformats
- Add a table withh all the fileformat from the FAQ in Wiki.
[Status: Done]
[ToDo: Update figure InsightDocuments/Art/SoftwareGuideImageIOFactoriesClassDiagram.fig in CVS]
- Add the examples for Series Read Write:
The .cxx are there, they need to:
1. Revision of their comments
2. Make sure they have regression testing.
3. Make sure they are input in Latex
- ImageReadImageSeriesWrite.cxx
- ImageSeriesReadWrite.cxx [unnecessary if there is a series write and a series read anyway ?]
- RGBImageSeriesReadWrite.cxx
[Status: Done]
(1) Mathieu
- Add a section on DICOM
- Maybe introduction by Mathieu
- short history, web site, standards.
JPEG compression... etc.
- How to read single DICOM slice
- How to write single DICOM slice
- How to read a DICOM series
- How to write a DICOM series
- How to printout an entire DICOM header
- How to get specific entries.
DicomSeriesReadImageWrite.cxx
DicomSeriesReadImageWrite2.cxx
DicomSeriesReadPrintTags.cxx
DicomSeriesReadSeriesWrite.cxx
[Status: Added little bit, Ask Mathieu to finish the rest]
[Added SWGuide comments to file /Insight/Examples/IO/DicomSeriesReadImageWrite2.cxx]
[Changed IO.tex to include GDCMDicom instead of older DICOM]
[ToDo: cvs Update files:
/Insight/Examples/IO/DicomSeriesReadImageWrite2.cxx
/InsightDocuments/SoftwareGuide/IO/IO.tex
/InsightDocuments/Latex/Insight.bib
/InsightDocuments/SoftwareGuide/Examples/CMakeLists.txt
]
- Chapter 8 Registration
(1) Luis
- Add a diagram from the PPT tutorial
regarding pixel spacing.
(3)
- Add time performance for the examples &
describe Zion. (check about multithreading).
(1) Karthik (add them to the list, not making new examples).
- Secion 8.4 Add the other MI metrics
- Kullback Leibler MI
- Normalized Mutual Information Histogram
Add other Metrics: (find a section for them...)
- MatchCardinality metric
- GradientDifferenceImageMetric
- KappaStatistics
- MeanReciprocalSquares
[Status: Done]
[ToDo: Update
/SoftwareGuide/Latex/ImageMetrics.tex
/InsightDocuments/Latex/Insight.bib
]
(1) Luis
- ImageRegistration8 --> 3D example
(2) Luis
- Add ImageRegistration7 & the Similarity transform.
(1) Luis
- In Multi-Resolution add comment regarding the approach
of fine-tunning the parameters for each level.
(3) Luis
- ImageRegistration11.cxx use of the OnePlusOne optimizer + MI metric.
(2) Luis
- Move Section 8.11 Multires pyramid filter to the Section on
Multiresolution and link it with the .cxx example on the
use of this filter.
Commit the example for StarsEnd on MultiresolutionPyramidFilter.cxx
polish the comments and add the Latex section.
(5) Leave it alone !
- What to do with METRIC & Parameters Plots ?
they are probably not valid anymore
but it will take a long time to regenerate them.
(1) Luis --> coordinate with Lydia and Stephen
- Transforms Section:
Full revision: discuss with Stephen & Lydia, regarding
parameters & center of rotation.
(1) Karthik
- Metrics:
Add new metrics
- Kullbak Leibler
- MutualInformationHistogramBased
- MatchCardinality metric
- GradientDifferenceImageMetric
- KappaStatistics
- MeanReciprocalSquares
- MeanSquaresHistogram
- CorrelationCoefficientHistogramMetric
- CompareHistogramImageToImageMetric
[Status: Done.
2 of the above metrics not added
Not sure if it is necessary to add "CorrelationCoefficientHistogramMetric"..
Pretty much the same as NormalizedCorrelationMetric...
"CompareHistogramImageToImageMetric" will be used by KullbackLiebler
]
(1) Luis
- Add Section on PointSet-To-Image registration
describe the method of the Narrowband to Image
registration.
(2) Karthik
- Warping Image
1) A way of creating ground truth for
evaluating deformable registration.
like morphing.
[Status: ToDo
Maybe ask Luis for some fMRI datasets...
]
2) A mechanism for initializing displacement
fields for deformable registration methods
like Demons.
- BSplineWarping
- LandmarWarping
[Status: Done
ToDo: cvs add ThinPlateSplineWarp.cxx
]
[Status: Clarify with Luis
Not sure what's necessary. The deformation field may be computed with
BSplineWarping etc and Demons can be initialized via SetInitialDeformationField.
Illustrate how to use Paraview for visualizing
the deformation field
[Status: Done
Added section on viewing 2D deformation fields
Adding section on viewing 3D deformation fields
ToDo:
cvs add /InsightDocuments/SoftwareGuide/Latex/VisualizingDeformationFieldsUsingParaview.tex
cvs add /InsightDocuments/SoftwareGuide/Art/ParaviewScreenshot1.jpg
cvs add /InsightDocuments/SoftwareGuide/Art/ParaviewScreenshot2.jpg
cvs add /InsightDocuments/SoftwareGuide/Art/ParaviewScreenshot3.jpg
cvs add /InsightDocuments/SoftwareGuide/Art/ParaviewScreenshot1.eps
cvs add /InsightDocuments/SoftwareGuide/Art/ParaviewScreenshot2.eps
cvs add /InsightDocuments/SoftwareGuide/Art/ParaviewScreenshot3.eps
cvs add /InsightDocuments/SoftwareGuide/Art/ParaviewScreenshot4.eps
cvs commit /InsightDocuments/SoftwareGuide/Latex/Registration.tex
]
- Show an example on the deformation of the grid.
[Status: ToDo]
(1) Will
Luis-->Checking FEM PPT from RPI course.
- Add two examples more for FEM
using the exact same code but changing the parameter
file.
(2) Luis help for examples:
Illustrate how to select the "Elasticity" and "Roc"
Illustrate the use of Landmarks in the FEM framework.
FiniteElementRegistrationLandmarks.txt
- Add a 3D example.... do rendering with Volview ? Paraview ?
(3) Luis
Specially show the modifications needed in the input
parameter file in order to do 3D.
(1) Karthik
- DEMONS
- Add example for Symmetric forces demons, explain
why... from Thirion's paper.
DeformableRegistration3.cxx example...
[Status: Done
Was already there..
Other changes:
Removed DeformableRegistration2.cxx and DeformableRegistration3.cxx
from Latex/DeformableRegistration.tex, cause its present in
Latex/DemonsRegistration.tex
ToDo:
cvs commit InsightDocuments/SoftwareGuide/Latex/DemonsRegistration.tex
InsightDocuments/SoftwareGuide/Latex/DeformableRegistration.tex
]
(2) Karthik
- Add a 3D example ( on the same image of the 3D FEM)
- Results visualized in ParaView...
[Status: Doing]
(1) Karthik (Luis help)
- FIX equations in section 8.13 for the K factor for
pixel spacing, and mention the lack of unit-balance
on Thirion's paper.
- Run this for the extra examples to be added for FEM.
[Status: Pending
]
(1) Luis
- Add example on LevelSet MotionRegistration (Jim filter)
DeformableRegistration5.cxx:
(2) Karthik
- Examples on BSplines
2D & 3D and both optimizers LBFGS LBSFGSB.
DeformableRegistration7 & 8
(give credit to filter contributor).
[Status: Working on it
Will add that to vis using Paraview section
]
(2) (Luis) Delegate to Stephen & Julien
- Model to Image registration (Check with Stephen & Julien)
- Show the image of the real SpatialObject (e.g. draw
the Ellipsoid using VTK.
- Add example of 3D vasculature tree & CT, or Ultrasound.
Chapter 9 Segmentation
(3) Karthik
- For all the Region Growing examples add a 3D example,
and surface render the result with VolView or Paraview.
run the Plugins in VolView.
[Status: Done
Added a 3D example for ConfidenceConnected filter
Some images and segemented white matter with Volview.
ToDo:
cvs add 3DregionGrowingScreenshot1.eps
cvs add SlicesBrainWebConfidenceConnected.eps
cvs add ConfidenceConnectedOnBrainWeb.tex
]
(1) Karthik
- Clarify that many seed points can be provided.
e.g. illustrate the use on the figure 9.1 page 319.
[Status: Done
The previous 3D segmentation used 5 seed points. Hopefully that
clarifies the point.
]
(1) Karthik
- 9.1.4 Add example showing that the seed can be both in
bright or dark places.
[ ?? Not sure if needed ?? The book has segmentations of gray matter!]
(2) (Luis) Outsource to Sayan
- Add example for KLMRegionGrowing (Ceck with Sayan).
& fix Doxygen documentation.
From the Doxygen page on Groups, remove the helper
classes used in the KLM filter (e.g. border & region).
(2) (Luis) Outsource to Josh
- Watersheds : Add screenshot of the Segmentation Editor ?
and a 3D example ?
-Add example for the new filter
IsolatedWatershed.
(1) Karthik
- Level Sets: Verify that all of them run & eventually
fine tune the parameters from the Regression testing.
[Status: Working on it
]
(2) Luis
- Add 3D examples from VolView ?
- FastMarching
- ShapeDetection
X - GeodesicActiveContours
- Threshold Segmentation
(3)
- LevelSet in MultiResolution (Jim Miller GE example).
(1) Will
- Talk about iso-surface extraction in order to visualize
the level set.
- Plug it to VTK
- monitor the iterations >>> ADD example ITK+VTK ***
(Look at SNAP)
(3)
- CURVES LevelSet for tubular objects
Add a .cxx example
(1) Karthik
- Active Shape Models (Leventon paper by Lydia).
GeodesicActiveContourShapePriorLevelSetImageFilter.cxx
[ ?? ]
(2) Will (preprocessing for visualization)
- Use of LevelSets for AntiAliasing & Fourth Order level set.
(2) Luis
- Voting Filters
- General voting filter
- Majority filter
- HoleFilling
X - HoleFillingIterative
(4)
- Cellular segmentation
- 2D example
- Run 3D example
(1) Karthik
- Hybrid Methods
Remove Fuzzy : It is patented
Deformable model : fix an example in 3D and show the output
(3) (Luis) Delegate to Leila & Thomas
Deformable model Simplex Mesh: InsightApplications (put screenshot).
(1) Karthik - (eg. Run in microscopy)
- Relabel Filter & Connected components. (put it in Filtering ???).
(1) Delegate - Stephen
- KMeans segmentation (or in Statistics chapter).
- MarkovRandomFields (or in Statistics chapter).
(1) Outsource - Julien
- Feature extraction: (check with Julien)
eventually add figures ???
(2) Will
New Chapter : Visualization
- Paraview
display vector fields
scalar image
- VolView
a bit of volume rendering
a bit about ITK Plugins
- Slicer
mention ITK filters
- Analyze
mention ITK filters
- ImageViewer in InsightApplications
- ImageMagick
- MRICro
- MRIConvert (DICOM)
- Valmet (segmentation validation)
- SNAP (Insight Applications).
connecting ITK with VTK
Take from the Tutorial
http://www.itk.org/CourseWare/Training/GettingStarted-II.pdf
Show the example in InsightApplications
itkReadITKImageShowVTK.cxx
itkReadITKImageSegmentShowVTK.cxx
itkReadITKImage3DSegmentShowVTK.cxx
Automation process:
- Added tags to most examples in Filtering/, Segmentation/, Iterators/
- Option to Build Figures
- Option to Flip specified list of input figures (and their output figure dependencies)
Other fixes: (Karthik)
-Fixed Examples Registration/ImageRegistration10.cxx and added outputs
-Fixed Examples Registration/ImageRegistration11.cxx and added outputs
-Fixed Examples Registration/ImageRegistration13.cxx and added outputs
%%% More topics to consider in future releases
%%% \chapter{Application}
%%%
%%% Pointers and a brief description of the available ITK applications.
%%%
%%% \chapter{Infrastructure}
%%% \label{chapter:Infrastructure}
%%%
%%% Smart pointers, exceptions, events, object factories.
%%% \chapter{GUI}
%%%
%%% Interface to GUI's such as FLTK, Qt, and wxWindows.
%%% \chapter{Wrapping}
%%%
%%% Using wrappers and generating wrappers.
%%%
%%%\chapter{Numerics}
%%%
%%%Making use of the numerics libraries; interface classes to the numerics classes