【圖像分割】基于粒子群算法實現(xiàn)圖像的自適應(yīng)多閾值快速分割matlab代碼
【圖像分割】基于粒子群算法實現(xiàn)圖像的自適應(yīng)多閾值快速分割matlab代碼
TT_Matlab
每天分享一點Matlab資料,一起成長進步。需要定制程序添加qq1575304183
1 簡介
為確定圖像分割的最佳閾值,基于粒子群優(yōu)化算法提出了一種多閾值圖像分割方法.由最大熵或最大類間方差法得到優(yōu)化的目標(biāo)函數(shù),用粒子群算法對其進行優(yōu)化,得到分割的最佳閾值,并用該閾值對圖像進行分割.將分割結(jié)果與遺傳算法的多閾值分割結(jié)果相比較可以看出,該算法不僅可實現(xiàn)正確的圖像分割,并可使分割速度大大提高.
2 部分代碼
clc ; clear ; close all ; %清屏,刪除已有的變量和窗口,tic和toc用來給程序計時 %% 輸入圖像; Imag = imread ( ’24063.jpg’ ); %296059 Imag = rgb2gray ( Imag ); Image_Shangmax = Imag ; %% 開始種群等基本定義 N = 500 ; % 初始種群個數(shù) d = 3 ; % 閾值個數(shù)(參看上述的函數(shù)表達式) ger = 300 ; % 最大迭代次數(shù) plimit = [ 1 , 256 ]; %% 作圖 figure ( 3 ); plot ( record ); %畫出最大值的變化過程 title ( ’收斂過程’ ) threshold1 = ym ( 1 ); threshold2 = ym ( 2 ); threshold3 = ym ( 3 ); [ height , length ]= size ( Image_Shangmax ); for i = 1 : length for j = 1 : height if Image_Shangmax ( j , i ) > threshold3 Image_Shangmax ( j , i )= 255 ; elseif Image_Shangmax ( j , i ) > threshold2 && Image_Shangmax ( j , i ) < = threshold3 Image_Shangmax ( j , i )= 165 ; elseif Image_Shangmax ( j , i ) > threshold1 && Image_Shangmax ( j , i ) < = threshold2 Image_Shangmax ( j , i )= 80 ; else Image_Shangmax ( j , i )= 0 ; end end end figure ( 4 ); imshow ( Image_Shangmax ); xlabel ([ ’最大熵法閾值’ , num2str ( ym )]); %% 適應(yīng)度函數(shù) function fx = f ( x ) Imag = imread ( ’24063.jpg’ ); %296059 Imag = rgb2gray ( Imag ); [ height , length ]= size ( Imag ); totalNum = height * length ; pixelCount = zeros ( 1 , 256 ); %統(tǒng)計各個像素值的個數(shù) for i = 1 : length for j = 1 : height number = Imag ( j , i ) +1 ; pixelCount ( number )= pixelCount ( number ) +1 ; end end pi = pixelCount / totalNum ; %pi 灰度級為i的像素出現(xiàn)的概率 fx = zeros ( 1 , 500 ); for i = 1 : 500 m = x ( i , 1 ); n = x ( i , 2 ); k = x ( i , 3 ); w0 = sum ( pi ( 1 : m )); w1 = sum ( pi ( m +1 : n )); w2 = sum ( pi ( n +1 : 256 )); w3 = sum ( pi ( k +1 : 256 )); H0 = 0 ; H1 = 0 ; H2 = 0 ; H3 = 0 ; for j = 1 : m if w0 > 0 && pi ( 1 , j ) / w0 ~ = 0 H0 = H0 - ( pi ( 1 , j ) / w0 ) .* log ( pi ( 1 , j ) / w0 ); %計算各個閾值下的前景熵 else H0 = H0 ; end end for j = m +1 : n if w1 > 0 && pi ( 1 , j ) / w1 ~ = 0 H1 = H1 - ( pi ( 1 , j ) / w1 ) .* log ( pi ( 1 , j ) / w1 ); %計算各個閾值下的背景熵 else H1 = H1 ; end end for j = n +1 : k if w2 > 0 && pi ( 1 , j ) / w2 ~ = 0 H2 = H2 - ( pi ( 1 , j ) / w2 ) .* log ( pi ( 1 , j ) / w2 ); %計算各個閾值下的背景熵 else H2 = H2 ; end end for j = k +1 : 256 if w3 > 0 && pi ( 1 , j ) / w3 ~ = 0 H3 = H3 - ( pi ( 1 , j ) / w3 ) .* log ( pi ( 1 , j ) / w3 ); %計算各個閾值下的背景熵 else H3 = H3 ; end end fx ( i )= H0 + H1 + H2 + H3 ; end end
3 仿真結(jié)果
4 參考文獻
[1]韋苗苗,江銘炎. (2005). 基于粒子群優(yōu)化算法的多閾值圖像分割. 山東大學(xué)學(xué)報:工學(xué)版, 35(6), 4.
部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除。
微信掃一掃贊賞作者
贊賞
發(fā)送給作者
人贊賞
長按二維碼向我轉(zhuǎn)賬
受蘋果公司新規(guī)定影響,微信 iOS 版的贊賞功能被關(guān)閉,可通過二維碼轉(zhuǎn)賬支持公眾號。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計算焓和比熱容 2020-08-31
-
Aspen Plus安裝過程中RMS License證書安裝失敗的解決方法,親測有效! 2021-10-15
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
