current position:Home>[image segmentation] optimize k-cluster image segmentation based on Matlab genetic algorithm [including Matlab source code 1605]

[image segmentation] optimize k-cluster image segmentation based on Matlab genetic algorithm [including Matlab source code 1605]

2022-01-27 03:56:13 Purple extreme divine light

One 、 Genetic algorithm optimization K Introduction to clustering

In this paper, a fuzzy clustering image segmentation algorithm based on optimized genetic algorithm is proposed , It is formed on the basis of the above optimization of genetic algorithm . It not only adaptively adjusts the variation rate and crossover rate according to the size of individual fitness and the speed of change , Improve calculation accuracy and efficiency , in addition , In the iterative calculation of genetic algorithm, the constraint condition based on the second derivative of the curve is added to speed up the convergence , Then the optimized genetic algorithm is used to calculate the cluster center according to the fuzzy clustering rules , After calculation , The segmentation threshold is generated according to the final calculated clustering center to complete the image segmentation . The specific steps are as follows :

  1. Initialization and encoding operations .
    Initialize the required parameters , Real number coding is adopted , The normalized cluster center coordinate value in the histogram is taken as the gene , Random generation of initial population . Real coding can shorten chromosome length , It also avoids the decoding process necessary for binary coding , Improve the accuracy and speed of calculation ;

  2. Calculate Fitness .
    The fitness function is constructed as :
    f=a/ (b+J) (5)
    among , a, b Is an adjustable parameter , The experiment can be set as 10 and 1.5.J It's a formula (1) The objective function in ;

  3. Select individual .
    The probability of an individual being selected is directly proportional to the fitness value , That is, individuals are selected in proportion according to the fitness ;

  4. Crossover produces new individuals .
    The real value intermediate reorganization method is adopted for cross operation ;

  5. Mutation operation .
    In this paper, the normalized coordinate value of clustering center is used as gene , Therefore, the amount of individual change before and after variation is set as 0.5r (t/T) . among , r Is interval [0, 1] The random number in , T For the evolution of maximum algebra , t For the current evolutionary Algebra . The advantage of this mutation operation is : At the beginning of evolution, that is t More hours , Individuals can vary in a wide range , Improve the accuracy of search , Avoid falling into local optimum ; And when t large , Narrow the range of individual variation , Help to improve search efficiency . Besides , In the process of producing new populations , Add constraints so that the generated cluster center does not deviate too much from the histogram peak , Speed up convergence ;

  6. Iterative calculation .
    After the new species group is obtained, a new fuzzy membership matrix is calculated , Return steps 2) , Continue to iterate , Until the iteration stop condition is met . After the iteration is terminated , The segmentation threshold is obtained according to the calculated clustering center , Complete image segmentation .

Two 、 Partial source code

function [idx,cs,egr]=kmeanseg(im,cs)

%number of Iteration
T= 50; t=0; 

nc=length(cs);
[row,col]=size(im);
D=zeros(row,col,nc);

pcs=cs;
egr =[];
eps=1.e-8; cmx=1;

while ( t<T  && cmx>eps )   
                 
    % Euclidean distance between centroids and image's pixel 
    for c=1: nc 
      D(:,:,c)=   (im - cs(c)).^2 ;     
    end
            
    % assign members (image pixels) to clusters  
    [mv,idx]=min(D,[],3);
    
     % cluster centroid updation
    for c=1: nc 
      I = (idx==c);  
      cs(c) = mean( mean(im(I)) );    
    end
    
    % find if any member label changes between current and previous iteration     
     cmx = max( abs(cs-pcs) );
     pcs = cs;
         
     t= t+1;
     
    %sum difference between centroid and their members 
    % and store it for ploting energy minimization functions
    egr= [egr; sum(mv(:)) ];
                         
end
function egr=objfunc(cs)

global sds
  nc = size(cs,2);
  [row,col]=size(sds);
  D=zeros(row,col,nc);
  % Euclidean distance between centroids and image's pixel 
  for c=1: nc 
    D(:,:,c)=   (sds - cs(c)).^2 ;     
  end        
 % assign members (image pixels) to clusters  
 [mv,~]=min(D,[],3);  
 egr=sum(mv(:));

3、 ... and 、 Running results

 Insert picture description here

Four 、matlab Edition and references

1 matlab edition
2014a

2 reference
[1] Cai Limei .MATLAB The image processing —— theory 、 Algorithm and example analysis [M]. tsinghua university press ,2020.
[2] Yang Dan , Zhao Haibin , Long Zhe .MATLAB Detailed explanation of image processing examples [M]. tsinghua university press ,2013.
[3] Zhou pin .MATLAB Image processing and graphical user interface design [M]. tsinghua university press ,2013.
[4] Liu Chenglong . Master MATLAB The image processing [M]. tsinghua university press ,2015.
[5] Zhu bin , Guan Li , Zhang Shengchao , Qi Min , Hao Chongyang . Fuzzy clustering image segmentation algorithm based on optimized genetic algorithm [J]. Journal of missile and guidance . 2008,(04)

copyright notice
author[Purple extreme divine light],Please bring the original link to reprint, thank you.
https://en.cdmana.com/2022/01/202201270356085595.html

Random recommended