Fuzzy clustering algorithm (FCM) can be directly used to segment images, it takes no account of the neighborhood information of the current pixel and does not have a robust segmentation noise suppression. Fuzzy Local Information C-means Clustering (FLICM) is a widely used robust segmentation algorithm, which combines spatial information with the membership degree of adjacent pixels. In order to further improve the robustness of FLICM algorithm, non-local information is embedded into FLICM algorithm and a fuzzy C-means clustering algorithm has local and non-local information (FLICMLNLI) is obtained. When calculating distance from pixel to cluster center, FLICMLNLI algorithm considers two distances from current pixel and its neighborhood pixels to cluster center. However, the algorithm gives the same weight to two different distances, which incorrectly magnifies the importance of neighborhood information in calculating the distance, resulting in unsatisfactory image segmentation effects and loss of image details. In order to solve this problem, we raise an improved self-learning weighted fuzzy algorithm, which directly obtains different weights in distance calculation through continuous iterative self-learning, then the distance metric with the weights obtained from self-learning is embedded in the objective function of the fuzzy clustering algorithm in order to improve the segmentation performance and robustness of the algorithm. A large number of experiments on different types of images show that the algorithm can not only suppress the noise but also retain the details in the image, the effect of segmenting complex noise images is better, and it provides better image segmentation results than the existing latest fuzzy clustering algorithms.