Automatic segmentation algorithm by ISTB
Recent Commits
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
8222343c77d4 | boubat | Last modifications found in lbovenus added. The commit of these… | Aug 13 2019 | ||||
382b76067344 | aterrier | Ancient changes eventually commited | Nov 29 2018 | ||||
fdeac5f10272 | aterrier | Readme.txt deleted | Nov 29 2018 | ||||
acc29f54257f | aterrier | README update | Nov 29 2018 | ||||
4ae85062b5e2 | aterrier | Automatisation of scapula segmentation, landmarks location, glenoid… | Nov 27 2018 | ||||
a171ad5354f4 | aterrier | Save anatomical measurements as anatData in sCase folder (howToPrepareData_AT.m) | Feb 2 2018 | ||||
9fefd0a9ae13 | aterrier | Initial commit without function folder | Feb 2 2018 |
README.md
Content of segmentation directory
This README describes the content of the segmentation directory, as the main workflow to perform segmentation of shoulder CT, identification of scapula landmarks, and glenoid surface.
Author: Alexandre Terrier, EPFL-LBO
Creation date: 2018-11-27
Updated functions by Alexandre Terrier
The following functions should be run in this order to get the segmentation of the scapula (SCases in shoulder/data), the bony landmarks, and the glenoid surface. The anatomical measurements are performed from these data, using matlab scripts located in /shoulder/method/matlab/database.
- segmentScapula.m: function created by Alexandre Terrier (from Elham Taghizadeh code and Bharath Narayanan extension) which calculates the segmentation of all scapulae in the database of CT. It saves the result as a ply file in in case directory. There is a log file in the log directory.
- findScapulaLandmarksSCase.m: uses findScapulaLandmarks.m for to get bone landmarks o all SCases. There is a log file in the log directory.
- findGlenoidSurfaceSCase.m: uses findGlenoidSurface.m to get the glenoid surface of all SCases. There is a log file in the log directory.
- TO DO
- segmentScapula.m should be divided in 2 functions: one for the list of SCase and one for one case, as for findScapulaLandmarksSCase.m and findGlenoidSurfaceSCase.m.
- unused files should be removed
- "SC" functions might be moved to database directory
- Still problems with loading of dicom and segmentation, partly described in these above codes.
Initial functions by Elham Taghizadeh
- howToPrepareData.m
- howToPrepareData_AT.m
- “autoSegment.m” is the function that does the segmentation. You should provide the loaded image with some input options (information on the header of functions) and as output it will provide the surface mesh as a struct with the fields of .vertices (coordinates of the nodes) and .faces (connectivity information).
- “sampleData” contains an example image for segmentation.
- “functions” folder contains all functions I use for segmentation.
- “00_vertices” folder contains all preselected nodes of the mesh that are going to be used for automatic landmark detection.
- “loadModel.m” load the model and all information that is necessary for segmentation.
- “doMeasurements.m” is the function that gets the segmented bone as input and as output provides the measurements in a struct.
- To see how the model and images should be prepared, you can find a MATLAB script in the same folder “howToPrepareData.m” that represents how you can call different functions.
- The files with the name of “tmp” are saved during process of segmentation and are replaced for every call to “autoSegment” function.
- "Protocol Segmentation Scapula.docx" is a protocol (format word) which explains how to segmented a scapula from the beginning to the end. It is situated in the folder: "shoulder\methods\documentations\protocols"
Codes by Bharath Narayanan
The directory bharath2remove contains codes developed by Bharath Narayanan, who extended codes of Elham Taghizadeh to work on the shoulder database. These codes have been updated in segmentScapula.m and findScapulaLandmark.m by Alexandre Terrier.