function output = getMusclesContour(obj,segmentationSetName) for muscleName = string(fields(obj.list))' try muscleMask = obj.list.(muscleName).loadMask(); pixelCoordinates = obj.list.(muscleName).loadPixelCoordinates(); catch continue end output.(muscleName).contourMask = getContourMask(muscleMask); output.(muscleName).contourIndices = getContourIndices(muscleMask); output.(muscleName).contourCoordinates = getContourCoordinates(muscleMask,pixelCoordinates); end end function output = getContourMask(muscleMask) contourMask = bwmorph(muscleMask,"remove"); output = contourMask; end function output = getContourCoordinates(muscleMask,pixelCoordinates) contourIndices = getContourIndices(muscleMask); contourCoordinates = []; for row = 1:size(contourIndices,1) contourCoordinates = [contourCoordinates; pixelCoordinates{contourIndices(row,1),contourIndices(row,2)}]; end output = contourCoordinates; end function output = getContourIndices(muscleMask) contourMask = getContourMask(muscleMask); [row, column] = ind2sub(size(contourMask),find(contourMask)); contourIndices = [column row]; output = contourIndices; end