[OpenCV][Python]形態學結構元素在影像處理中的應用

更新於 發佈於 閱讀時間約 6 分鐘

在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。

  • 程式範例為做開運算去除小物體

結構元素的常見類型

  1. 矩形結構元素cv2.MORPH_RECT
    • 矩形結構元素是一種最常見的形態學結構元素,能夠進行較大區域的處理,適合處理方形或矩形區域的噪點和結構。
  2. 橢圓形結構元素cv2.MORPH_ELLIPSE
    • 橢圓形結構元素接近圓形,適合處理圓形或圓滑邊緣的噪點。它能有效去除圓形的噪點而不破壞圖像中的圓形特徵。
  3. 十字形結構元素cv2.MORPH_CROSS
    • 十字形結構元素是一種特殊的形態學結構元素,通常用來處理圖像中的交叉點或角點。


基本形態學操作

  • 開運算(Opening):先進行腐蝕,再進行膨脹。主要用來去除小物體,適合去除前景中的小噪點。
  • 閉運算(Closing):先進行膨脹,再進行腐蝕。主要用來填補背景中的小孔洞,適合去除背景中的小噪點。


實驗圖片

我們使用包含多種噪點和形狀的圖像來進行測試,這張圖片包含小圓形雜點、矩形區域和其他不規則噪點。

raw-image

程式範例:使用不同結構元素進行處理

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 讀取測試圖片
image = cv2.imread('圖片路徑', cv2.IMREAD_GRAYSCALE)
_, binary = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)

# 定義不同形狀的結構元素
kernel_size = 55
rect_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (kernel_size, kernel_size))
ellipse_kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (kernel_size, kernel_size))
cross_kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (kernel_size, kernel_size))

# 開運算
rect_opening = cv2.morphologyEx(binary, cv2.MORPH_OPEN, rect_kernel)
ellipse_opening = cv2.morphologyEx(binary, cv2.MORPH_OPEN, ellipse_kernel)
cross_opening = cv2.morphologyEx(binary, cv2.MORPH_OPEN, cross_kernel)

# 顯示結果
titles = ['binary', 'Rect Kernel Opening', 'Ellipse Kernel Opening', 'Cross Kernel Opening']
images = [binary, rect_opening, ellipse_opening, cross_opening]

plt.figure(figsize=(5, 5)) # 調整窗口的大小,避免圖片被壓縮


for i in range(4):
plt.subplot(2, 2, i+1)
plt.imshow(images[i], cmap='gray')
plt.title(titles[i])
plt.xticks([]), plt.yticks([])

plt.tight_layout() # 自動調整子圖的間距,避免重疊
plt.show()

逐步講解

  1. 讀取圖像:首先,我們讀取了一張包含多種噪點和形狀的圖片(上面的範例圖片),轉換成二值化的圖,用來進行形態學處理。
  2. 定義不同的結構元素
  3. 形態學操作(開運算):我們對每一種結構元素都執行了開運算ㄏㄧㄠˇ
  4. 顯示結果:通過 matplotlib 顯示原始圖片和經過不同結構元素處理後的結果。

結果分析

raw-image
  • 矩形結構元素:能夠更好地處理方形和大範圍的噪點,但對於圓形噪點,可能會損失一些細節。
  • 橢圓形結構元素:對圓形噪點有更好的效果,它能保留圖像中的圓形特徵,同時有效去除圓形噪點。
  • 十字形結構元素:適合處理角點或交叉點,但對於圓形或矩形的噪點處理不如其他結構元素。

在形態學操作中,結構元素的大小和形狀對結果有著決定性的影響。當你使用較大的結構元素時,形態學操作會對圖像產生更強烈的作用,只保留與結構元素大小和形狀相似的物體

結構元素 55

如下圖,使用比較大的結構元素時,只保留了相似形狀的物體其他都濾除掉了。

raw-image

結構元素 23

矩形結構元素幾乎把全部都快濾除掉了,十字形結構元素都留下了邊邊角角,

橢圓形結構保留了圓形的物件。

raw-image

總結:

  • 矩形結構元素:適合去除大範圍的噪點,保留方形特徵較好,但對圓形特徵會有一定削減。
  • 橢圓形結構元素:在保護圓形和圓滑特徵方面表現最佳,且對方形特徵的影響也較小,適合處理混合噪點。
  • 十字形結構元素:對於交叉點或線狀特徵的保留效果非常好,但對於圓形或方形特徵,可能會造成邊緣變形。


留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
149會員
288內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/02/15
在電腦視覺應用中,輪廓(Contour)常用來描述物體的邊界。 當圖像中有雜訊或物體邊緣過於複雜時,我們可以利用輪廓逼近技術,將輪廓簡化成較少點數的多邊形,這不僅有助於後續的形狀分析,也能提高處理速度。 本文將介紹如何使用 OpenCV 中的 cv2.arcLength 與 cv2.approx
Thumbnail
2025/02/15
在電腦視覺應用中,輪廓(Contour)常用來描述物體的邊界。 當圖像中有雜訊或物體邊緣過於複雜時,我們可以利用輪廓逼近技術,將輪廓簡化成較少點數的多邊形,這不僅有助於後續的形狀分析,也能提高處理速度。 本文將介紹如何使用 OpenCV 中的 cv2.arcLength 與 cv2.approx
Thumbnail
2024/12/02
中值濾波器(Adaptive Median Filter)是一種針對噪聲去除的圖像處理技術,主要應用於處理含有椒鹽雜訊的圖像,但在椒鹽雜訊過大時就會面臨,若為了處理掉雜訊,使用的處理窗口(kernel)就要大一點,會造成圖像的邊緣模糊掉。 後面為解決這個問題,就發展了自適應中值濾波器,其概念源自於
Thumbnail
2024/12/02
中值濾波器(Adaptive Median Filter)是一種針對噪聲去除的圖像處理技術,主要應用於處理含有椒鹽雜訊的圖像,但在椒鹽雜訊過大時就會面臨,若為了處理掉雜訊,使用的處理窗口(kernel)就要大一點,會造成圖像的邊緣模糊掉。 後面為解決這個問題,就發展了自適應中值濾波器,其概念源自於
Thumbnail
2024/09/29
cv2.fastNlMeansDenoising() 是 OpenCV 中一個非常有效的去噪函數,基於非局部均值濾波算法(Non-Local Means Filtering)。它能夠有效地去除圖像中的隨機噪聲(如高斯噪聲),並保留圖像的細節,特別適合處理含有隨機噪聲的圖像,如拍攝時產生的感光元件噪聲
Thumbnail
2024/09/29
cv2.fastNlMeansDenoising() 是 OpenCV 中一個非常有效的去噪函數,基於非局部均值濾波算法(Non-Local Means Filtering)。它能夠有效地去除圖像中的隨機噪聲(如高斯噪聲),並保留圖像的細節,特別適合處理含有隨機噪聲的圖像,如拍攝時產生的感光元件噪聲
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
在電腦視覺應用中,輪廓(Contour)常用來描述物體的邊界。 當圖像中有雜訊或物體邊緣過於複雜時,我們可以利用輪廓逼近技術,將輪廓簡化成較少點數的多邊形,這不僅有助於後續的形狀分析,也能提高處理速度。 本文將介紹如何使用 OpenCV 中的 cv2.arcLength 與 cv2.approx
Thumbnail
在電腦視覺應用中,輪廓(Contour)常用來描述物體的邊界。 當圖像中有雜訊或物體邊緣過於複雜時,我們可以利用輪廓逼近技術,將輪廓簡化成較少點數的多邊形,這不僅有助於後續的形狀分析,也能提高處理速度。 本文將介紹如何使用 OpenCV 中的 cv2.arcLength 與 cv2.approx
Thumbnail
粒子系統可以用來製作視覺特效(visual effect, VFX),而粒子外觀的呈現方式,以及粒子具有怎樣的紋理(texture),都會影響特效所展現出來的效果。本節介紹如何利用不同紋理的粒子圖片,以不同的混色模式(blending mode),透過粒子系統來製作模擬煙霧的特效。
Thumbnail
粒子系統可以用來製作視覺特效(visual effect, VFX),而粒子外觀的呈現方式,以及粒子具有怎樣的紋理(texture),都會影響特效所展現出來的效果。本節介紹如何利用不同紋理的粒子圖片,以不同的混色模式(blending mode),透過粒子系統來製作模擬煙霧的特效。
Thumbnail
在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。
Thumbnail
在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。
Thumbnail
當影像中有雜訊時,使用直方圖均衡化來增強對比就會受雜訊的影響,從而影響到整體的結果。應對這個問題,可以考慮使用自適應直方圖均衡化來減少雜訊的影響,並增強對比度。 本文將比較直方圖均衡化與自適應直方圖均衡化的差異性。 [OpenCV基礎][Python]影像增強_直方圖均衡處理 直方圖均衡化的
Thumbnail
當影像中有雜訊時,使用直方圖均衡化來增強對比就會受雜訊的影響,從而影響到整體的結果。應對這個問題,可以考慮使用自適應直方圖均衡化來減少雜訊的影響,並增強對比度。 本文將比較直方圖均衡化與自適應直方圖均衡化的差異性。 [OpenCV基礎][Python]影像增強_直方圖均衡處理 直方圖均衡化的
Thumbnail
在影像處理中,我們總是想要讓特徵更加明顯一點,可以使用銳利化的方式將特徵的邊緣增強,提升影像的細節,圖像銳利後就會有提升解析度的感覺。 拉普拉斯運算子是一種常用於影像增強的方法之一,特別是用於提高影像的邊緣和細節。 在OpenCV中,你可以使用cv2.Laplacian函數來應用拉普拉斯運算子。
Thumbnail
在影像處理中,我們總是想要讓特徵更加明顯一點,可以使用銳利化的方式將特徵的邊緣增強,提升影像的細節,圖像銳利後就會有提升解析度的感覺。 拉普拉斯運算子是一種常用於影像增強的方法之一,特別是用於提高影像的邊緣和細節。 在OpenCV中,你可以使用cv2.Laplacian函數來應用拉普拉斯運算子。
Thumbnail
直方圖均衡化處理是一種通過調整圖像的直方圖來改變圖像外觀和質量的圖像處理技術。這通常涉及對圖像的亮度、對比度和顏色分佈進行調整 此方法對於背景和前景均亮或均暗的影像很有用。​並在曝光過度或曝光不足的照片中獲得更好的細節。
Thumbnail
直方圖均衡化處理是一種通過調整圖像的直方圖來改變圖像外觀和質量的圖像處理技術。這通常涉及對圖像的亮度、對比度和顏色分佈進行調整 此方法對於背景和前景均亮或均暗的影像很有用。​並在曝光過度或曝光不足的照片中獲得更好的細節。
Thumbnail
涉及圖像處理和計算機視覺時,色彩空間轉換是一個常見操作,應用如下: 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
Thumbnail
涉及圖像處理和計算機視覺時,色彩空間轉換是一個常見操作,應用如下: 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News