A modified Fuzzy-C-Means (FCM) approach to segment an image while estimating and accounting for the bias/inhomogeneity field.
See code/main.mlx and run it cell by cell.
code/main.mlx: The main script/driver programcode/computeA.m: Computes the bias-removed imagecode/distance.m: Computes the "distance" values used inupdateU.mcode/iterate.m: Driver class for the algorithmcode/KMeans.m: Returns the initial segmentation using the standard K-means algorithmcode/objectiveFunction.m: Evaluates the objective function at the current estimatescode/showSegmented.m: Plots the segmented image using a custom colormapcode/updateB.m: Computes the optimal value of the bias field, within every iteration.code/updateC.m: Computes the optimal value of the class means, within every iteration.code/updateU.m: Computes the optimal value of the class memberships, within every iteration.
(This was done as a course assignment for CS736: Medical Image Computing, Spring 2021, IIT Bombay)




