圖像形態學是圖像處理的分支學科,在二值圖像處理中占有重要地位、OpenCV中實現了圖像形態學如下常見操作:
-膨脹操作
-腐蝕操作
-開操作
-閉操作
-擊中擊不中操作
-黑帽操作
-頂帽操作
-梯度操作
在開始相關API與代碼演示之前,首先要加載圖片然后把圖像從彩色圖像轉換為二值圖像,實現代碼如下:
結構元素
圖像形態學操作,必須有結構元素才可以,不同形狀的結構元素對同樣的圖像進行相同的操作可以得到不同的輸出結果,所以在形態學操作中結構元素的選擇至關重要。OpenCV中獲取結構元素的相關代碼如下:
腐蝕操作
腐蝕操作是將結構元素覆蓋下的中心像素點的值用最小值替換,得到結果即為腐蝕操作輸出圖像,通過OpenCV API調用實現腐蝕操作的代碼如下
膨脹操作
膨脹操作是將結構元素覆蓋下的中心像素點的值用最大值替換,得到結果即為膨脹操作輸出圖像,通過OpenCV API調用實現膨脹操作的代碼如下
開操作
開操作是首先對圖像進行腐蝕操作,然后在對圖像進行膨脹操作,開操作可以斷開兩個對象的連接性。實現對象分離。開操作的代碼實現如下:
閉操作
閉操作使用結構元素對圖像先膨脹后腐蝕,正好跟開操作的順序相反,但是閉操作絕對不是開操作的反操作結果。閉操作可以消除圖像中背景小點。OpenCV中開操作代碼演示如下:
擊中擊不中操作(Hit and Miss)
根據結構元素的選擇被擊中的區域將會被保留、而沒有被擊中的區域則被去掉OpenCV中代碼演示如下:
黑帽操作
黑帽操作的結果是圖像閉操作與源圖像之間的不同,OpenCV中實現圖像黑帽操作的代碼如下:
頂帽操作
頂帽操作是源圖像與開操作結果之間的差異,頂帽操作可以顯示出圖像中區域之間微小不同之處。OpenCV頂帽操作的代碼演示如下:
梯度操作
形態學的梯度操作是圖像膨脹與腐蝕結果之間的不同,常見的梯度操作是基本梯度-是膨脹與腐蝕結果之間不同。OpenCV的代碼演示如下:
函數說明
morphologyEx- 形態學操作函數
-第一個參數表示輸入圖像,通道數目任意,位數可以是8、16、32
-第二個參數表示輸出圖像,通道數與位數與輸入圖像一致
-第三個參數表示是那種形態學操作
-第四個參數表示結構元素是什么
上述舉例都是基于矩形結構元素5x5窗口大小,此外文章中還定義另外兩種結構元素,感興趣的讀者可以自己嘗試。
原文標題:OpenCV中圖像形態學操作
文章出處:【微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
圖像
+關注
關注
2文章
1087瀏覽量
40501 -
OpenCV
+關注
關注
31文章
635瀏覽量
41386
原文標題:OpenCV中圖像形態學操作
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論