圖像處理算法有哪些_圖像處理十大經(jīng)典算法
隨著現(xiàn)代社會的發(fā)展,信息的形式和數(shù)量正在迅猛增長。其中很大一部分是圖像,圖像可以把事物生動(dòng)地呈現(xiàn)在我們面前,讓我們更直觀地接受信息。同時(shí),計(jì)算機(jī)已經(jīng)作為一種人們普遍使用的工具為人們的生產(chǎn)生活服務(wù)。
圖像處理概況圖像處理,是對圖像進(jìn)行分析、加工、和處理,使其滿足視覺、心理以及其他要求的技術(shù)。圖像處理是信號處理在圖像域上的一個(gè)應(yīng)用。目前大多數(shù)的圖像是以數(shù)字形式存儲,因而圖像處理很多情況下指數(shù)字圖像處理。本文接下來將簡單粗略介紹下數(shù)字圖像處理領(lǐng)域中的經(jīng)典算法。
圖算法領(lǐng)域10大經(jīng)典算法 基本遍歷 一、深度優(yōu)先搜索
深度優(yōu)先搜索算法思想
深度優(yōu)先遍歷圖的方法(一種遞歸的定義)是,假定給定圖G的初始狀態(tài)是所有頂點(diǎn)均未被訪問過,在G中任選一個(gè)頂點(diǎn)i作為遍歷的初始點(diǎn),則深度優(yōu)先搜索遞歸調(diào)用包含以下操作:
?。?)訪問搜索到的未被訪問的鄰接點(diǎn);
(2)將此頂點(diǎn)標(biāo)記為已訪問節(jié)點(diǎn);
(3)搜索該頂點(diǎn)的未被訪問的鄰接點(diǎn),若該鄰接點(diǎn)存在,則從此鄰接點(diǎn)開始進(jìn)行同樣的訪問和搜索。
深度優(yōu)先搜索算法實(shí)現(xiàn):
1. 使用棧來實(shí)現(xiàn)。相關(guān)算法實(shí)現(xiàn)總結(jié)為:
?。?) 將初始節(jié)點(diǎn)壓棧。
?。?) While(棧非空) {
?。?) 取出棧頂點(diǎn),暫時(shí)存儲這個(gè)節(jié)點(diǎn)node_t信息。
(4) 訪問該節(jié)點(diǎn),并且標(biāo)示已訪問。
(5) 將棧頂元素出站。
(6) For(遍歷node_t的相鄰的未訪問過的節(jié)點(diǎn)){
?。?) 將其入棧。
}
}
注意事項(xiàng):一定要先將該訪問節(jié)點(diǎn)出棧后,再將其鄰接的未訪問的節(jié)點(diǎn)入棧。切記不要,之前我的經(jīng)歷,如果沒有鄰接點(diǎn)就出棧,否則就不出站,但是標(biāo)記了該節(jié)點(diǎn)為訪問節(jié)點(diǎn)的。
2. 使用遞歸來實(shí)現(xiàn)。相關(guān)算法實(shí)現(xiàn)總結(jié)為:
?。?) DFS(初始節(jié)點(diǎn))
?。?) FuncTIon DFS(一個(gè)節(jié)點(diǎn)) {
(3) 訪問該節(jié)點(diǎn),并且標(biāo)示已訪問。
(4) For(遍歷該節(jié)點(diǎn)的相鄰的未訪問過的節(jié)點(diǎn)) {
?。?) DFS(這個(gè)鄰接節(jié)點(diǎn))。
}
}
二、廣度優(yōu)先搜索
此圖遍歷中最基本的倆種算法,BFS,DFS,入選本圖算法十大算法,自是無可爭議。
因?yàn)椋@倆種搜索算法,應(yīng)用實(shí)為廣泛而重要。
關(guān)于此BFS、DFS算法,更多,請參考:
http://blog.csdn.net/v_JULY_v/archive/2011/01/01/6111353.aspx
三、A*搜索算法DFS和BFS在展開子結(jié)點(diǎn)時(shí)均屬于盲目型搜索,也就是說,
它不會選擇哪個(gè)結(jié)點(diǎn)在下一次搜索中更優(yōu)而去跳轉(zhuǎn)到該結(jié)點(diǎn)進(jìn)行下一步的搜索。
在運(yùn)氣不好的情形中,均需要試探完整個(gè)解集空間, 顯然,只能適用于問題規(guī)模不大的搜索問題中。
A*算法,作為啟發(fā)式算法中很重要的一種,被廣泛應(yīng)用在最優(yōu)路徑求解和一些策略設(shè)計(jì)的問題中。
而A*算法最為核心的部分,就在于它的一個(gè)估值函數(shù)的設(shè)計(jì)上:
f(n)=g(n)+h(n)
其中f(n)是每個(gè)可能試探點(diǎn)的估值,它有兩部分組成:
一部分,為g(n),它表示從起始搜索點(diǎn)到當(dāng)前點(diǎn)的代價(jià)(通常用某結(jié)點(diǎn)在搜索樹中的深度來表示)。
一部分,即h(n),它表示啟發(fā)式搜索中最為重要的一部分,即當(dāng)前結(jié)點(diǎn)到目標(biāo)結(jié)點(diǎn)的估值。
更多,請參考:
經(jīng)典算法研究系列:一、A*搜索算法
附:
Flood Fill
LeeMaRS、wtzyb4446:
圖形學(xué)中Flood Fill是滿水法填充,是用來填充區(qū)域的。
就好比在一個(gè)地方一直到水,水會往四周滿延開,直到高地阻擋。
Flood Fill就是從一個(gè)點(diǎn)開始往四周尋找相同的點(diǎn)填充,直到有不同的點(diǎn)為止。
我們用的Flood Fill和這個(gè)差不多原理,就是BFS的一種形式。
假設(shè)在(i,j)滴好大一滴紅墨水,然后水開始漫開,向它的上下左右染色,也就是(i-1,j),(i+1,j),(i,j-1),(i,j+1)這四個(gè)點(diǎn)。然后在分別再從這四個(gè)點(diǎn)開始向周圍染色。。。直到碰到某種邊界為止。
把這個(gè)轉(zhuǎn)化為BFS的思想,就是隊(duì)列中初始元素是(i,j),然后把(i,j)擴(kuò)展?fàn)顟B(tài),得到(i-1,j),(i+1,j),(i,j-1),(i,j+1)這四個(gè)狀態(tài),加入隊(duì)列。把(i,j)出列,繼續(xù)擴(kuò)展下一個(gè)結(jié)點(diǎn)。如此