Research Article
Medical Image Segmentation Using Fruit Fly Optimization and Density Peaks Clustering
| | Input: Medical images, population size Sizepop, number of iterations Maxgen, the initial position of the fruit fly X_axis and Y_axis. | | (1) | Begin | | (2) | Initial: Initialize coordinate points. | | (3) | X_axis = randi([imin,imax],1,1) | | (4) | Y_axis = randi([imin,imax],1,1) % The initial position of the fruit flies, the range is imin to imax. | | (5) | ⟵ X_axis; ⟵ Y_axis % Assign X_axis, Y_axis to DPC parameters. | | (6) | Xa = X_axis + randi() | | (7) | Ya = Y_axis + randi() % Give fruit flies random directions and distances | | (8) | Calculate: Calculate the smell concentration function fit with image entropy and record the test result in the smell concentration array (Smell). | | (9) | [bestSmell,bestIndex]=max(Smell) % Find extremum based on initial smell concentration | | (10) | Smellbest = bestSmell | | (11) | X_axis = S(bestIndex,1) | | (12) | Y_axis = S(bestIndex,2) % Keep the best position | | (13) | For i = 1 to Maxgen % Fruit flies begin iterative optimization, looking for multiple extremum | | (14) | For j = 1 to Sizepop | | (15) | If Smellbest>bestSmell then | | (16) | X(bestIndex)⟶X_axis | | (17) | Y(bestIndex)⟶Y_axis | | (18) | Smellbest⟶bestSmell | | (19) | End If | | (20) | End | | (21) | Return optimal parameter values and segmentation results. | | | Output: Optimal threshold, image segmentation results |
|