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】
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 :
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 ;
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 ;
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 ;
Crossover produces new individuals .
The real value intermediate reorganization method is adopted for cross operation ;
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 ;
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 .
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(:));
1 matlab edition
 Cai Limei .MATLAB The image processing —— theory 、 Algorithm and example analysis [M]. tsinghua university press ,2020.
 Yang Dan , Zhao Haibin , Long Zhe .MATLAB Detailed explanation of image processing examples [M]. tsinghua university press ,2013.
 Zhou pin .MATLAB Image processing and graphical user interface design [M]. tsinghua university press ,2013.
 Liu Chenglong . Master MATLAB The image processing [M]. tsinghua university press ,2015.
 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)
author[Purple extreme divine light],Please bring the original link to reprint, thank you.
The sidebar is recommended
- Spring IOC container loading process
- [thinking] the difference between singleton mode and static method - object-oriented programming
- Hadoop environment setup (MySQL environment configuration)
- 10 minutes, using node JS creates a real-time early warning system for bad weather!
- Git tool
- Force deduction algorithm - 92 Reverse linked list II
- What is the sub problem of dynamic programming?
- C / C + +: static keyword summary
- Idea does not have the artifacts option when configuring Tomcat
- Anaconda can't open it
guess what you like
I don't know how to start this
Matlab simulation of transportation optimization algorithm based on PSO
MySQL slow log optimization
[Vue] as the window is stretched (larger, smaller, wider and higher), the text will not be displayed
Popular Linux distributions for embedded computing
Suzhou computer research
After installing SSL Certificate in Windows + tomcat, the domain name request is not successful. Please answer!!
Implementation time output and greetings of jQuery instance
The 72 year old uncle became popular. Wu Jing and Guo fan made his story into a film, which made countless dreamers blush
How to save computer research
- Springboot implements excel import and export, which is easy to use, and poi can be thrown away
- The final examination subjects of a class are mathematical programming, and the scores are sorted and output from high to low
- Two pronged approach, Tsinghua Professor Pro code JDK and hotspot source code notes, one-time learning to understand
- C + + recursive knapsack problem
- The use of GIT and GitHub and the latest git tutorial are easy to understand -- Video notes of crazy God speaking
- PostgreSQL statement query
- Ignition database test
- Context didn't understand why he got a high salary?, Nginxfair principle
- Bootstrap switch switch control user's guide, springcloud actual combat video
- A list that contains only strings. What other search methods can be used except sequential search
- [matlab path planning] multi ant colony algorithm grid map path planning [including GUI source code 650]
- [matlab path planning] improved genetic algorithm grid map path planning [including source code phase 525]
- Iinternet network path management system
- Appium settings app is not running after 5000ms
- Reactnative foundation - 07 (background image, status bar, statusbar)
- Reactnative foundation - 04 (custom rpx)
- If you want an embedded database (H2, hsql or Derby), please put it on the classpath
- When using stm32g070 Hal library, if you want to write to flash, you must perform an erase. If you don't let it, you can't write continuously.
- Linux checks where the software is installed and what files are installed
- SQL statement fuzzy query and time interval filtering
- 69. Sqrt (x) (c + + problem solving version with vs runnable source program)
- Fresh students are about to graduate. Do you choose Java development or big data?
- Java project: OA management system (java + SSM + bootstrap + MySQL + JSP)
- Titanic passenger survival prediction
- Vectorization of deep learning formula
- Configuration and use of private image warehouse of microservice architect docker
- For someone, delete return 1 and return 0
- How does Java dynamically obtain what type of data is passed? It is used to judge whether the data is the same, dynamic data type
- How does the database cow optimize SQL?
- [data structure] chain structure of binary tree (pre order traversal) (middle order traversal) (post order traversal) (sequence traversal)
- Webpack packaging optimization solution
- 5. Operation element
- Detailed explanation of red and black trees
- redhat7. 9 install database 19C
- Blue Bridge Cup notes: (the given elements are not repeated) complete arrangement (arrangement cannot be repeated, arrangement can be repeated)
- Detailed explanation of springboot default package scanning mechanism and @ componentscan specified scanning path
- How to solve the run-time exception of test times
- Detailed explanation of k8s management tool kubectl
- Android system view memory command