diff --git a/ShoulderCase/@Muscle/Muscle.m b/ShoulderCase/@Muscle/Muscle.m index 463f27d..3fc5426 100644 --- a/ShoulderCase/@Muscle/Muscle.m +++ b/ShoulderCase/@Muscle/Muscle.m @@ -1,95 +1,78 @@ classdef Muscle < handle % The Muscle class is linked to a segmented muscle file (a mask) % and to the slice it has been segmented out of. % % Then, this class can measured values linked to the PCSA and the % muscle's degeneration. properties container = nan; name = ""; segmentationName = ""; sliceName = ""; PCSA = nan; atrophy = nan; fat = nan; osteochondroma = nan; degeneration = nan; forceApplicationPoint = nan; forceVector = nan; end methods function obj = Muscle(musclesContainer,muscleName) obj.container = musclesContainer; obj.name = muscleName; [~, ~] = mkdir(obj.dataPath); [~, ~] = mkdir(obj.dataMaskPath); [~, ~] = mkdir(obj.dataContourPath); end function output = dataPath(obj) output = fullfile(obj.container.dataPath, obj.name); end function output = dataMaskPath(obj) output = fullfile(obj.dataPath, "mask"); end function output = dataContourPath(obj) output = fullfile(obj.dataPath, "contour"); end function setSliceName(obj, value) obj.sliceName = value; end function setSegmentationName(obj, value) obj.segmentationName = value; end - function output = getValues(obj) - output = cellfun(@(property) obj.(property), properties(obj),... - 'UniformOutput',false); - end - - function output = summary(obj) - summary.name = string(obj.name); - summary.segmentationName = string(obj.segmentationName); - summary.sliceName = string(obj.sliceName); - summary.PCSA = obj.PCSA; - summary.atrophy = obj.atrophy; - summary.fat = obj.fat; - summary.osteochondroma = obj.osteochondroma; - summary.degeneration = obj.degeneration; - output = struct2table(summary); - end - function measureDegeneration(obj,sliceName, segmentationName) obj.sliceName = sliceName; obj.segmentationName = segmentationName; try measurer = MuscleMeasurer(obj); obj.PCSA = measurer.getPCSA; obj.atrophy = measurer.getRatioAtrophy; obj.fat = measurer.getRatioFat; obj.osteochondroma = measurer.getRatioOsteochondroma; obj.degeneration = measurer.getRatioDegeneration; end end function output = loadMask(obj) output = imread(fullfile(obj.dataMaskPath,obj.segmentationName + "_Mask.png")) > 0; end function output = loadPixelCoordinates(obj) output = load(fullfile(obj.container.dataSlicesPath,... obj.sliceName + "_PixelCoordinates.mat")).imagesPixelCoordinates; end end end