數位影像處理_黃正民_單元五 型態學影像處理_Part 9 型態學影像處理的變化(下)

. DeltaMOOCx
50粉絲
2023年12月1日
DeltaMOOCx 台達磨課師是大學及高中/高工的免費公益磨課師(MOOCs)平臺。練習題、討論、教師輔導及更多數位課程資源,請至https://univ.deltamoocx.net 註冊。本影片採用「創用CC-姓名標示-非商業性-禁止改作4.0」臺灣授權條款,相關授權作業依「創用CC-姓名標示-非商業性-禁止改作4.0」規範辦理。
各位同學大家好
歡迎回到型態學影像處理
在這個part之中我們將繼續來看到
型態學影像處理與其他的影像處理的數值運算
或者是一些邏輯集合運算的結合之後
能夠辦到的一些其他功能的延伸影像處理的應用
在接下來首先我們看到區塊填補
我們可以看到如右圖所示
A影像是在這個影像之中
一個灰色的這樣一個輪廓影像區塊
那我們會以一個十字的B結構元素
如右圖所示
這個B結構元素的原點是在十字的中間
那我們在這個區塊填補裡面
想要做的事情就是去把A區塊
中間白色的這個部分完全填補
變成一個灰色的區塊
也就是A不是隻有單純的輪廓
而是變成是一個實心的完整的A區塊
那在這樣的一個處理手法
區塊填補裡面
我們的數學式子以及處理的方法步驟
如左邊的這個方程式所示
我們會將A區塊
不斷地以B結構元素去做膨脹處理之後
再將每一次膨脹處理的結果
去以A的補給
AC的這一張補給影像去做交集
那把這樣的處理不斷地重複迭代K次
最後我們就可以把整個這個區塊A
中間空間的部分填補起來
那初始化的時候
我們會設計設定說
當K等於1的時候
就是X0
X0的時候
我們這個X0就是A影像
這個灰色裡面的其中的區塊中的某一個點
我們設定為我們的初始
那接下來不斷地以B結構元素去做膨脹
膨脹之後就把這個結果X1
去以AC去做交集
接下來不斷地重複
這樣子膨脹與AC做交集
一步兩步六步之後
七步之後
我們就可以得到這樣的一個迭代的結果
那我們什麼時候會停止這樣的一個迭代程序呢
一直到我們的這個膨脹交集
這樣子的一個處理步驟
不會讓我的區塊有任何的
這個像素的增加的時候
我們就停止
停止這樣的一個迭代步驟
最後我們把輸出的結果X7
與原本的A影像去做一個連擊
我們就可以得到右下圖
這個區塊填補的結果
那在應用實例的例子裡面呢
如我們在這個章節裡面最一開始提到的
我們想要去偵測如左圖裡面
這幾個甜甜圈
有幾個甜甜圈的個數
但是我們如果以圓形偵測
去做這個計算的時候
每一個甜甜圈都有內圓以及外圓
我們可能會算到兩次
那在這個部分呢
我們其實就可以去做一個區塊填補
將左圖的這張圖呢
補成右邊的這個小圖
我們可以看到每個甜甜圈
都變成是一個十星的白色圓圈
好 接著我們再以一次圓形偵測
我們就可以去計算出
這裡面有幾個甜甜圈的個數
好 在接下來我們看到
連通元件的一個處理應用
在這裡一樣我們就是透過形態選項處理
來得到連通元件的結果
連通元件的結果呢
也就是說我們希望得到
在右邊的這個圖A中的區塊呢
完整連續的這個像素點
總共有哪些
可以構成這個圖A的連通區塊
那在這個例子之中
我們以一個三乘三的
小的方形的結構元素
來做操作
就是這個左邊方程式中的這個B
就是我們結構元素
在這個連通元件處理之中呢
我們會將每一次的結果呢
不斷地與B結構元素去做膨脹
與剛剛不同的是呢
我們膨脹之後呢
會與原本的A圖去做一個交集
然後不斷地重複迭代K次
就是會得到我們最後的結果
那我們來看一下圖例
在一開始的初始化
同樣的X0
我們會設定這個X0
就是圖A中區塊的某一個
內部的一個點
那不斷地重複B結構元素
來做膨脹
然後與A做交集
一次、兩次
那一直不斷地重複迭代K次之後
停止的條件呢
就是當我們的區塊
不會再有任何的像素的增加的時候
我們就輸出了
如右下角這個圖
我們把所有的標記
這個像素點的標記成斜線
就是代表說它是
A區塊裡面的一個部分
好,那就是我們連通元件的處理
接下來我們來看到凸殼處理
就是我們叫做
convex hull的這樣一個處理標記
那在這個處理裡面呢
我們會希望找出
這個圖中A影像
這個外圍
外圍的這些convex的
這個hull的
外殼的、凸殼的
凸出來的一些部分
在這個處理手法裡面呢
我們使用四個結構元素
好,B1、B2、B3、B4
四個元素
結構元素
來分別對這個圖A呢
來做多次的迭代
好,k次的迭代
那在每一次迭代的結果裡面呢
我們會以這四個結構元素
來做對輸入圖做hn轉換
hn轉換就是我們
在上一個part裡面提到的一個形態
外型的偵測
輪廓的偵測
外型的偵測
好,那每一次hn轉換的結果呢
我們在與原本的輸入影像A
去做一個連擊
好,那初始呢
我們就設定我們的輸入影像
是我們的初始
那停止條件呢
就是當我們迭代的結果呢
不會有任何像素點增加
或者是變化的時候呢
我們就得到了這個結構元素
它的這個輸出結果
那如右邊的這幾個圖例之中
我們可以看到
在第一個結構元素
它迭代四次的結果
第二個結構元素
它迭代兩次之後就不會有增減
第三個結構元素
迭代八次之後
就不會有任何增減
以及第四個結構元素
迭代兩次之後
就不會有任何增減的這個結果
那最後我們的輸出呢
就是把這四個結構元素
迭代運算的輸出結果呢
全部連集在一起
我們就可以得到右下角的
這個圖殼的集合
C of A
這一張輸出影像
我們可以很明顯看到
它其實就是我們
最一開始輸入影像的一個
外圍的
這個輪廓的一個集合區塊
接下來我們來看到細線化
就是Thinning
的這個演算法的處理
那在細線化的這個處理手法裡面呢
我們希望把一個輸入影像A
我們可以看到這個
很粗大
完整的一個A區塊
我們希望得到
其中的這些細線
它的細部
來作為它的一個代表
描述
那在這樣的一個處理手法裡面呢
我們會定義了
如上圖所示的
B1 B2 B3
一直到B8
八個結構元素
那以這八個結構元素呢
分別來對A輸入影像
做多次的HM轉換
的結果
再以A去減掉它
那在數學符號上面呢
我們可以描述成
左邊的這個方程式所示
那我們細線化
Thinning的數學符號呢
寫一個XX的這個乘號
然後再一個圈圈
把它框起來
這代表我們的細線化
那右邊的這個
信號的這個乘號呢
一個圈圈框起來
這是我們在之前所提到
HM轉換的符號
好 那我們以一連串的這個
B1到B8的結構元素
做細線化處理呢
也就是如下面的這個處理步驟所示
就是首先將A
以B1的結構元素去做Thinning
結果再以B2去做Thinning
處理的結果再以B3去做Thinning
那我們可以看到
如右圖的這個
一步一步的處理的步驟結果
A圖做了B1的Thinning之後
好 稍微變瘦了一些
然後再以B2做Thinning之後
好 區塊變得更小
B3 B4 B5 B6 B7 B8
好 不斷地做Thinning的結果之後
我們可以看到
很明顯地將其細線化的結果
那最後的輸出結果呢
就是如右下圖的這個小圖所示
好 接著呢
我們來看到增厚處理
好 就是Thickening
我們希望將A
好 灰色的這個結構
這個影像的區塊呢
把它變得比較粗大
好 那在數學符號呢
定義上面
我們可以看到
左邊的這個方程式
就是我們定義Thinning的符號
好 以B結構元素
來做這個Thinning的處理的話
就是寫一個小點
然後一個圈圈把它框起來
好 是我們Thinning的符號
那處理的步驟手法
其實就是將A影像
以B結構元素去做HM轉換之後
再以原本的A影像
去做一個連擊
就得到輸出
那步驟呢
我們可以看到呢
這個目的呢
其實它就是在去
將A影像的背景
做一個細線化
好 那將背景細線化
其實反之
也就是會將我們的
前景的這個區塊呢
變得比較粗大
我們可以看到
如右圖的這個處理手法
AC的處理結果
然後我們去將AC
以這個B結構元素
來做一次這個Thinning
好 然後其實補集呢
好 那就是我們
剛剛所定義的Thinning的結果
好 如下圖的這個小圖所示
接下來我們來看到
骨架萃取
就是Skeleton
好的 這個處理手法
我們先來看一下
如右圖所示
我們希望將
像一個Y字形的這個
A圖的影像呢
以一個圓形的B結構元素
好 去做骨架萃取的話
我們其實會以
多個不同大小的B的
這個圓形的結構元素
來對A做骨架的萃取
那骨架萃取這邊呢
其實做的事情呢
也就是說我們將
B的結構元素
把它塞入到A影像的
這個區塊內部的時候
好 那能夠完全放入
A影像的區塊
也就是B結構元素
能夠接觸
觸碰到A的兩個以上的輪廓
兩邊以上的輪廓的時候
我們才會將
B結構元素的中心保留下來
好 所以我們可以看到
這樣子的處理結果呢
我們就可以得到
右上角
好 B A影像中
最主要的這個
虛線部分的輪廓結
這個骨幹的結構
那在一些細微的
角落點的部分呢
我們可以看到
如左下圖的這個圖所示
我們換成比較小一點的
好 這個結構元素
圓形的結構元素大小
那就可以進一步的
萃取到在邊邊角角的
這些細微骨幹的部分
好 那最後輸出結果呢
是希望能得到一個
如右下圖
好 這個S of A的骨幹
虛線部分的這個部分
好 是我們希望
骨幹萃取的輸出結果
那處理步驟
以及數學公式呢
我們來看一下
如左邊的這個方程式定義
我們其實呢
就是會去以B結構元素
各個大小不同的B結構元素
來對A影像
做多次的侵蝕與斷開的處理
那在這個方程式中的
S下標K of A
好 那他其實就是去
將A影像
以KB的這個結構元素
去做處理之後
減掉A影像
以KB的結構元素
去做侵蝕處理
好 然後再做一次這個
這個斷開
好 那A以KB去做侵蝕處理
他的意思呢
其實也就是
我們將A影像
以B結構元素
去做K次的連續的侵蝕
那這樣的一個
處理手法的結果
我們就可以得到一個
SK of A
那我們這個K
要做多少次呢
好 那我們總共會從0
做到大K次
大K呢
我們定義其實就是說
我原本的A影像
做了B結構元素
去做侵蝕之後
侵蝕了多少次
我們最後
A會變成是一個空集合
那大K呢
其實就是指我們
要去做多少次的侵蝕
A影像變成空集合的這個次數
我們定義成大K
好 接下來我們來看到
減除pruning的這個處理手法
他是希望我們將A影像中
好 左上角這個骨架
這個多餘的部分呢
去把它萃取清除掉
好 那其實也就是
我們會接著在細線化
或是骨架萃取之後的
一個處理步驟手法
那緊要的步驟呢
大概就是我們會將
A影像細線化三次之後
再消除掉
計升級筆畫的末端
得到X1的這個圖
接下來呢
我們再把X1
做HN轉換之後
找到其中的末端點
如X2的這個小圖
再接下來
接下來我們將X2
去膨脹
與A做交集
就可以得到X3的這個小圖
最後我們將X1與X3的小圖
去做連擊
我們就得到右下角
這個pruning
減除的輸出結果
好 那在這個小節之中
我們學到了影像處理區塊的
填補 連通元件
軀殼描述
細線化 增厚
骨架萃取 減除
他們都是透過
形態學影像處理的一些組合
延伸來得到的
在下一個小節之中
我們將進一步來看到
形態學影像處理
在其他一些應用實例
上面的介紹
包括像是在一些偵測
或者是在一些辨識
上面的應用
謝謝大家
