1. 程式人生 > >【Matlab學習筆記】【數學形態學】分水嶺分割演算法

【Matlab學習筆記】【數學形態學】分水嶺分割演算法

分水嶺演算法的概念及原理:

分水嶺分割方法,是一種基於拓撲理論的數學形態學的分割方法,其基本思想是把影象看作是測地學上的拓撲地貌,影象中每一點畫素的灰度值示該點的海拔高度,每一個區域性極小值及其影響區域稱為集水盆,而集水盆的邊界則形成分水嶺。分水嶺的概念和形成可以通過模擬浸入過程來說明。在每一個區域性極小值表面,刺穿一個小孔,然後把整個模型慢慢浸入水中,隨著浸入的加深,每一個區域性極小值的影響域慢慢向外擴充套件,在兩個集水盆匯合處構築大壩,即形成分水嶺分水嶺的計算過程是一個迭代標註過程。分水嶺比較經典的計算方法是L. Vincent提出的。在該演算法中,分水嶺計算分兩個步驟,一個是排序過程,一個是淹沒過程。首先對每個畫素的灰度級進行從低到高排序,然後在從低到高實現淹沒過程中,對每一個區域性極小值在h階高度的影響域採用先進先出(FIFO)結構進行判斷及標註。

分水嶺變換得到的是輸入影象的集水盆影象,集水盆之間的邊界點,即為分水嶺。顯然,分水嶺表示的是輸入影象極大值點。因此,為得到影象的邊緣資訊,通常把梯度影象作為輸入影象,即

g(x,y)=grad(f(x,y))={[f(x,y)-f(x-1,y)]2[f(x,y)-f(x,y-1)]2}0.5

    式中,f(x,y)表示原始影象,grad{.}表示梯度運算。分水嶺演算法對微弱邊緣具有良好的響應,影象中的噪聲、物體表面細微的灰度變化,都會產生過度分割的現象。但同時應當看出,分水嶺演算法對微弱邊緣具有良好的響應,是得到封閉連續邊緣的保證的。另外,分水嶺演算法所得到的封閉的集水盆,為分析影象的區域特徵提供了可能。為消除

分水嶺演算法產生的過度分割,通常可以採用兩種處理方法,一是利用先驗知識去除無關邊緣資訊。二是修改梯度函式使得集水盆只響應想要探測的目標。為降低分水嶺演算法產生的過度分割,通常要對梯度函式進行修改,一個簡單的方法是對梯度影象進行閾值處理,以消除灰度的微小變化產生的過度分割。即

g(x,y)=max(grad(f(x,y)),gθ)

式中,gθ表示閾值。程式可採用方法:用閾值限制梯度影象以達到消除灰度值的微小變化產生的過度分割,獲得適量的區域,再對這些區域的邊緣點的灰度級進行從低到高排序,然後在從低到高實現淹沒的過程,梯度影象用Sobel運算元計算獲得。對梯度影象進行閾值處理時,選取合適的閾值對最終分割的影象有很大影響,因此閾值的選取是

影象分割效果好壞的一個關鍵。缺點:實際影象中可能含有微弱的邊緣,灰度變化的數值差別不是特別明顯,選取閾值過大可能會消去這些微弱邊緣。

相關推薦

Matlab學習筆記數學形態學分水嶺分割演算法

分水嶺演算法的概念及原理: 分水嶺分割方法,是一種基於拓撲理論的數學形態學的分割方法,其基本思想是把影象看作是測地學上的拓撲地貌,影象中每一點畫素的灰度值表示該點的海拔高度,每一個區域性極小值及其影響區域稱為集水盆,而集水盆的邊界則形成分水嶺。分水嶺的概念和形成可以通過模擬浸入過程來說明。在每一個區域性

Matlab學習筆記數學形態學膨脹、腐蝕、開運算、閉運算、擊中擊不中變換

1.形態學膨脹操作: %膨脹 imdilate(dilate=膨脹/擴大) clc clear A1=imread('C:\Users\Administrator\Pictures\DIP3E_CH09_Original_Images\DIP3E_Original

matlab學習筆記矩陣的表示和常用符號

今天在看一段matlab程式碼的時候發現matlab的風格和C/JAVA有點不同啊,總而言之就是簡潔!但是隨之而來的問題就是有些地方難以看懂,我把這些貼出來,希望對像我一樣的新手有幫助。 矩陣的表示 在MATLAB中建立矩陣有以下規則:a、矩陣元素必須在”[ ]”內;b、矩

Matlab學習筆記matlab的程式設計規則

1.Matlab的續行符:     關於matab的換行,在matlab程式碼的編寫過程中,有時會遇到程式碼在一行顯示不開了,或者在txt文件、或其他程式碼編輯後,由於其本身格式的作用,程式碼可能會自

MATLAB 學習筆記 SimMechanics 流程攻略(4)

Parker教授一共五集教學,我濃縮了一下,分成四章攻略,本章寫完,SimMechanics入門攻略也告一段路,準備繼續填其他的坑。 本章例項為一個二級擺,並沒有太多新的知識點,主要是之前知識點融合的一個例項,重點屢一下各個模組之間的座標關係。 ============

MATLAB 學習筆記 SimMechanics 流程攻略 (2)

本章主要內容: 1. 製作斜坡上以及懸掛的彈簧阻尼系統; 2. 用m檔案修改系統中的引數,達到可程式設計控制的目的。 ==================================================================== 首先研究一下各個

Java學習筆記之二十二解析接口在Java繼承中的用法及實例分析

ani 復制代碼 ads compute 現在 target body 常量 實現接口 一、定義 Java接口(Interface),是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具

jQuery學習筆記-----jQuery事件名稱空間

jQuery事件名稱空間 jQuery支援事件名稱空間,以方便事件管理。例如,在下面的示例中,為div元素繫結多個事件型別,然後使用名稱空間進行規範,從而方便管理。所謂事件名稱空間,就晨事件型別後面以點語法附加一個別名,以便引用事件,如”click.a”,其中”a”就是cl

Java學習筆記之三十二淺談Java中throw與throws的用法及異常拋出處理機制剖析

input auto void ref 淺談 .html ssa 不能 而是 異常處理機制 異常處理是對可能出現的異常進行處理,以防止程序遇到異常時被卡死,處於一直等待,或死循環。 異常有兩個過程,一個是拋出異常;一個是捕捉異常。 拋出異常 拋出異常有三種

取模(mod)與取余(rem)的區別——Matlab學習筆記

學習筆記 ear inf ace 方向 由於 返回 rem pos 昨天在學習Matlab的數學函數時,教程中提到取模(mod)與取余(rem)是不同的,今天在網上具體查了一下: 通常取模運算也叫取余運算,它們返回結果都是余數.rem和mod唯一的區別在於:

caffe學習筆記之7caffe-matlab/python訓練LeNet模型並應用於mnist資料集(2)

【案例介紹】 LeNet網路模型是一個用來識別手寫數字的最經典的卷積神經網路,是Yann LeCun在1998年設計並提出的,是早期卷積神經網路中最有代表性的實驗系統之一,其論文是CNN領域第一篇經典之作。本篇部落格詳細介紹基於Matlab、Python訓練lenet手

caffe學習筆記之4利用MATLAB介面執行cifar資料集

【前期準備工作】 1. 確保模型訓練成功,生成模型檔案:cifar10_quick_iter_4000.caffemodel及均值檔案:mean.binaryproto。注意,此處一定是生成caffemodel格式的模型檔案,而非.h5模型檔案,否則會導致Matlab執行

ML學習筆記3:機器學習中的數學基礎3(特徵值,特徵向量,認識SVD)

矩陣乘以向量的幾何意義 實際上也就是 所以,它還可以寫成 那麼把原來的矩陣按照列檢視來看,也就是 而[x]和[y]作為1x1的矩陣,在剛剛那個式子裡可以看成一個標量,也就變成了 所以矩陣乘以一個列向量,可以看成把這個列向量的每一個分

ML學習筆記5:機器學習中的數學基礎5(張量,哈達瑪積,生成子空間,超平面,範數)

向量/矩陣/張量 向量 向量可以表示成一維陣列,每個分量可以理解為向量所表示的點在空間中座標的分量。 矩陣 矩陣可以表示成二維陣列,上節理解了矩陣可以理解為線性對映在特定基下的一種定量描述。 張量 張量可以表示成任意維的陣列,張量是向量概

取模(mod)與取餘(rem)的區別——Matlab學習筆記

對於整數a,b來說,取模運算或者求餘運算的方法要分如下兩步: 1.求整數商:c=a/b 2.計算模或者餘數:r=a-(c*b) 求模運算和求餘運算在第一步不同 取餘運算在計算商值向0方向捨棄小數位 取模運算在計算商值向負無窮方向捨棄小數位 例如:4/(-3)約等於-1.3 在

JAVAWEB學習筆記12_Http&Tomcat

請求重定向 san res tor tomcat啟動 zha rac pac b- 一、Http協議 1.什麽是Http協議 HTTP,超文本傳輸協議(HyperText Transfer Protocol)是互聯網上應用最為廣泛的 一種網絡協議。所有的WWW文

extjs6學習筆記1.1 初始:創建項目

workspace 學習 分享 pps cnblogs log -i 學習筆記 apps 創建工作空間 sencha generate workspace /path/to/workspace 使用sencha創建應用 sencha

extjs6學習筆記1.2 初始:MVC MVVM

控制 進行 nbsp 例如 ges 如果 image 初始 互動 模型 這表示數據層。該模型可以包含數據驗證和邏輯來保持數據。在 ext js 中, 大多數模型都與一個數據存儲一起使用。 視圖 這表示用戶界面。 是用戶在屏幕上看到的組

JAVAWEB學習筆記13_servlet

eight 生命周期 sys blog source con 相對 對象創建 功能 JavaWeb核心之Servlet 教學導航 學習目標: 案例一、完成用戶登錄功能 案例二、記錄成功登錄系統的人次 一、Servlet簡介 1.什麽是Servlet Servlet

JAVAWEB學習筆記16_session&cookie

發送 學習筆記 獲得 tab esp http 應用 區分 pac 會話技術Cookie&Session 學習目標 案例一、記錄用戶的上次訪問時間---cookie 案例二、實現驗證碼的校驗----session 一、會話技術簡介 1.存儲客