【图像分割】基于pcnn脉冲神经网络结合区域生长算法实现图像分割附matlab代码
1 簡(jiǎn)介
1950s數(shù)字圖像處理產(chǎn)生,從此學(xué)術(shù)界對(duì)它的研究連綿不絕。十多年之后,數(shù)字圖像的處理被獨(dú)立出來成了一門課程。圖像分割技術(shù)是處理圖像的一種基礎(chǔ)技術(shù),在圖像處理領(lǐng)域中占了重要地位,且在圖像工程、模式識(shí)別、計(jì)算機(jī)視覺等方面起著重要作用。本文正是以圖像分割為研究課題,以如何能更好地圖像進(jìn)行省時(shí)而有效的分割為研究目的,提出了基于最大熵的脈沖耦合神經(jīng)網(wǎng)絡(luò)(PulseCoupled Neural Networks,簡(jiǎn)稱PCNN)的方法。眾所周知,有效的分割方法有利于理解圖像的本質(zhì)和后續(xù)的研究工作等,因此本文分割方法的研究是具有一定意義的。傳統(tǒng)的處理圖像的分割問題的方法有:基于灰度級(jí)算術(shù)均值法、基于熵與直方圖法、基于最大類間方差法、基于邊緣的檢測(cè)分割法,基于閾值的分割法,基于邊界提取的分割法,基于區(qū)域的分割法,基于特定理論的分割法。同時(shí),當(dāng)然少不了產(chǎn)生的一些相關(guān)模型,如健壯尺度區(qū)域模型,二維經(jīng)典C-V模型,尺度區(qū)域擬合模型,三維C-V模型,健壯統(tǒng)計(jì)三維C-V模型,幾何主動(dòng)輪廓模型等。本文將出基于脈沖耦合神經(jīng)網(wǎng)絡(luò)的方法。此方法對(duì)上述分割數(shù)字圖像時(shí)的不足具有一定的彌補(bǔ)作用。用PCNN方法分割數(shù)字圖像的模型中,以神經(jīng)元為單元,構(gòu)成二維的一層的神經(jīng)元列。PCNN模型中神經(jīng)元的數(shù)目一致于像素?cái)?shù)目,每個(gè)神經(jīng)元一一對(duì)應(yīng)于每個(gè)像素。根據(jù)PCNN的脈沖傳播特性而引起的同步脈沖現(xiàn)象來實(shí)現(xiàn)圖像分割。
2 部分代碼
function J = My_RegionGrowing(I, init_pos, reg_maxdist) [row, col] = size(I); % 輸入圖像的維數(shù) J = zeros(row, col); % 輸出 x0 = init_pos(1); % 初始點(diǎn) y0 = init_pos(2); reg_mean = I(x0, y0); % 生長(zhǎng)起始點(diǎn)灰度值 J(x0, y0) = 1; % 生長(zhǎng)起始點(diǎn)設(shè)置為白色 reg_sum = reg_mean; % 符合生長(zhǎng)條件的灰度值總和 reg_num = 1; % 符合生長(zhǎng)條件的點(diǎn)的個(gè)數(shù) count = 1; % 每次判斷周圍八個(gè)點(diǎn)中符合條件的數(shù)目 reg_choose = zeros(row*col, 2); % 記錄已選擇點(diǎn)的坐標(biāo) reg_choose(reg_num, :) = init_pos; num = 1; % 第一個(gè)點(diǎn) while count > 0 s_temp = 0; % 周圍八個(gè)點(diǎn)中符合條件的點(diǎn)的灰度值總和 count = 0; for k = 1 : num % 對(duì)新增的每個(gè)點(diǎn)遍歷,避免重復(fù) i = reg_choose(reg_num - num + k, 1); j = reg_choose(reg_num - num +k, 2); if J(i, j) == 1 && i > 1 && i < row && j > 1 && j < col % 已確定且不是邊界上的點(diǎn) % 八鄰域 for u = -1 : 1 for v = -1 : 1 % 未處理且滿足生長(zhǎng)條件的點(diǎn) if J(i + u, j + v) == 0 && abs(I(i + u, j + v) - reg_mean) <= reg_maxdist J(i + u, j + v) = 1; % 對(duì)應(yīng)點(diǎn)設(shè)置為白色 count = count + 1; reg_choose(reg_num + count, :) = [i + u, j + v]; s_temp = s_temp + I(i + u, j + v); % 灰度值存入s_temp中 end end end end end num = count; % 新增的點(diǎn) reg_num = reg_num + count; % 區(qū)域內(nèi)總點(diǎn)數(shù) reg_sum = reg_sum + s_temp; % 區(qū)域內(nèi)總灰度值 reg_mean = reg_sum / reg_num; % 區(qū)域灰度平均值 end??3 仿真結(jié)果
4 參考文獻(xiàn)
[1]黃國峰. 基于脈沖耦合神經(jīng)網(wǎng)絡(luò)的圖像分割算法研究[D]. 西安電子科技大學(xué).
博主簡(jiǎn)介:擅長(zhǎng)智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
5 代碼下載
總結(jié)
以上是生活随笔為你收集整理的【图像分割】基于pcnn脉冲神经网络结合区域生长算法实现图像分割附matlab代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用ARCGIS制作MIKE21边界文件
- 下一篇: matlab lbp特征,lbp特征(