国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 化工知識 > 【圖像邊緣檢測】基于蟻群算法實(shí)現(xiàn)圖像邊緣檢測matlab代碼

【圖像邊緣檢測】基于蟻群算法實(shí)現(xiàn)圖像邊緣檢測matlab代碼

時間:2021-12-11 來源: 瀏覽:

【圖像邊緣檢測】基于蟻群算法實(shí)現(xiàn)圖像邊緣檢測matlab代碼

原創(chuàng) 天天Matlab 天天Matlab
天天Matlab

TT_Matlab

每天分享一點(diǎn)Matlab資料,一起成長進(jìn)步。需要定制程序添加qq1575304183

收錄于話題 #圖像處理matlab源碼 286個 內(nèi)容

1 簡介

目的提出基于螞蟻算法的圖像分割技術(shù),解決傳統(tǒng)的圖像分割算法分割圖像的效果不理想、不能滿足圖像分割要求等問題。方法將圖像的灰度、梯度和鄰域特征組合成螞蟻,通過MATLAB實(shí)現(xiàn)蟻群圖像分割算法對圖像的外廓提取。結(jié)果與結(jié)論相對于傳統(tǒng)的圖像分割算法,基于螞蟻算法的圖像分割算法的外廓提取具有更高的仿真精度,得到的圖形外廓更為理想。

蟻群算法是由意 大利科 學(xué) 家A.Colorni、M.Dorigo和V.Maniezzo等人提出的一種通過模仿螞蟻的覓食行為來尋找復(fù)雜優(yōu)化問題近似解的啟發(fā)式算法。

螞蟻是一種社會性群居昆蟲,個體非常簡單,但通過多數(shù)螞蟻之間的團(tuán)結(jié)與合作,是能夠完成非常復(fù)雜的、具有“智能”的活動,它們都可以找到由巢穴到食物之間的最佳的路徑,例如:當(dāng)有障礙物突然出現(xiàn)在螞蟻運(yùn)動路線上時,它們能夠迅速的再次找到最佳路徑。那么,這樣一個龐大的工作量,小小的螞蟻是通過什么來完成的呢?在許多科學(xué)研究者不懈的努力下,他們得知,螞蟻個體間是通過一種被稱之為信息激素(pheromone)的物質(zhì)進(jìn)行信息傳送的,其可以相互合作來完成困難的任務(wù)。

在對昆蟲進(jìn)行一段時間的觀察之后,我們發(fā)現(xiàn),雖然真實(shí)的螞蟻沒有視覺構(gòu)造,但是螞蟻在尋找食物源時,途中釋 放信 息激 素[15],而且它們分泌的信息量會隨著所走路線的增長和時間的推遲而不斷揮發(fā),在附近的其他螞蟻能夠在這個過程當(dāng)中,隨著時間的流逝,漸漸感知到信息素的存在和它的強(qiáng)弱,并由此決定它們以后的行為。從同一個地方快速啟動時一群螞蟻選擇適合自己的方式找到了相同的各路徑的食物來源,,找到最短路徑的螞蟻,能夠更快的將食物搬回巢穴。信息素會隨著時間的推移而蒸發(fā)。當(dāng)一只螞蟻經(jīng)過很長一段路程的旅行,信息素蒸發(fā)的時間就更長。因此,時間短就更有利于在更快速的行進(jìn)中更大的彌補(bǔ)蒸發(fā)的信息素。信息素密度能夠在較短路徑內(nèi)維持高水平是因?yàn)樗舭l(fā)快。如此往復(fù),就形成了一 個正 反饋的系統(tǒng),最后大部分螞蟻會根據(jù)這個正反饋系統(tǒng)選擇一個最短的運(yùn)輸路線,這就是蟻群算法搜索尋優(yōu)的過程。

2 部分代碼

function edge_ACO %參考文獻(xiàn):"An Ant Colony Optimization Algorithm For Image Edge close all ; clear all ; clc ; % 讀入圖像 filename = ’ant128’ ; % img=rgb2gray(imread(’ant.jpg’)); img = imread ( ’rice.png’ ); img = double ( img ) ./ 255 ; [ nrow , ncol ] = size ( img ); %公式(3.24.4)初始化     % 產(chǎn)生邊緣圖矩陣,運(yùn)用信息素函數(shù)判斷是否是邊緣     % 調(diào)用子函數(shù)進(jìn)行二值分割 T = func_seperate_two_class ( p );     fprintf ( ’Done! ’ );     imwrite ( uint8 ( abs (( p > = T ) .* 255-255 )), gray ( 256 ), [ filename ’_edge_aco_’ num2str ( nMethod ) ’.jpg’ ], ’jpg’ ); end %%%%%%%%子函數(shù)%%%%%%% function level = func_seperate_two_class ( I ) % 功能:進(jìn)行二值分割 I = I (:); % STEP 1: 通過直方圖計(jì)算灰度均值, 設(shè)定T=mean(I) [ counts , N ]= hist ( I , 256 ); i = 1 ; mu = cumsum ( counts ); T ( i )=( sum ( N .* counts )) / mu ( end ); % STEP 2: 計(jì)算灰度值大于 T (MAT)像素的均值和灰度值小于 T(MBT)像素的均值 % step 1 mu2 = cumsum ( counts ( N < = T ( i ))); MBT = sum ( N ( N < = T ( i )) .* counts ( N < = T ( i ))) / mu2 ( end ); mu3 = cumsum ( counts ( N > T ( i ))); MAT = sum ( N ( N > T ( i )) .* counts ( N > T ( i ))) / mu3 ( end ); i = i +1 ; T ( i )=( MAT + MBT ) / 2 ; % STEP 3 :當(dāng)T(i)~=T(i-1),重復(fù)STEP 2 Threshold = T ( i ); while abs ( T ( i ) - T ( i -1 )) > = 1     mu2 = cumsum ( counts ( N < = T ( i )));     MBT = sum ( N ( N < = T ( i )) .* counts ( N < = T ( i ))) / mu2 ( end );     mu3 = cumsum ( counts ( N > T ( i )));     MAT = sum ( N ( N > T ( i )) .* counts ( N > T ( i ))) / mu3 ( end );     i = i +1 ;     T ( i )=( MAT + MBT ) / 2 ;     Threshold = T ( i ); end % 歸一化均值到 [i, 1]之間. level = Threshold ;

3 仿真結(jié)果

4 參考文獻(xiàn)

[1]高蕊, and 馬磊. "基于蟻群算法的圖像分割方法." 寶雞文理學(xué)院學(xué)報(bào)(自然科學(xué)版) (2018).

部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。

天天Matlab

贊賞二維碼 微信掃一掃贊賞作者 贊賞

已喜歡, 對作者說句悄悄話
最多40字,當(dāng)前共

  人贊賞

1 / 3

長按二維碼向我轉(zhuǎn)賬

贊賞二維碼

受蘋果公司新規(guī)定影響,微信 iOS 版的贊賞功能被關(guān)閉,可通過二維碼轉(zhuǎn)賬支持公眾號。

版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時內(nèi)刪除。
相關(guān)推薦