[OpenCV基礎][Python]影像模糊化

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

在生活中常看到的美圖秀秀美圖修修或者其他圖像編輯軟體,通常使用各種濾波器模糊化技術實現照片修飾和美化效果。這些濾波和模糊化技術可以應用於不同的區域,以改進照片的外觀,包括平滑皮膚去除細節調整對比度等。

本文會介紹 OpenCV 四種影像模糊化的方法 ( blur()GaussianBlur()medianBlur()bilateralFilter() ),經由圖片輸出,理解其應用。


OpenCV中實現影像模糊化的常見方法介紹:

平均模糊(Averaging Blur):

  • 通過將每個像素的值設置為周圍鄰域像素值的平均值來實現。
  • cv2.blur(img, (kernel_size, kernel_size)) 函式實現平均模糊。
    img:輸入圖像。
    (kernel_size, kernel_size):核的大小,表示鄰域的大小。

高斯模糊(Gaussian Blur):

  • 使用高斯函數權重計算每個像素的新值,以達到平滑效果。
  • blurred = cv2.GaussianBlur(img, (kernel_size, kernel_size), sigma) 函式實現高斯模糊。
    img:輸入圖像。
    (kernel_size, kernel_size):高斯核的大小,通常是一個正奇數。越大的核將產生越強的模糊效果。
    sigma:高斯核的標準差。標準差越大,生成的高斯分布越寬,模糊效果越強。

中值模糊(Median Blur):

  • 將每個像素的值設置為鄰域像素值的中值
  • cv2.medianBlur(img, kernel_size) 函式實現中值模糊。
  • img:輸入圖像。
  • kernel_size:核的大小,表示鄰域的大小。

雙邊濾波器(Bilateral Filter):

  • 結合了色彩相似性空間相似性的考慮,可在平滑圖像的同時保留邊緣細節。。
  • bilateral_filtered = cv2.bilateralFilter(img, d, sigmaColor, sigmaSpace) 函式實現雙邊濾波器。
  • img:輸入圖像。
  • d:在濾波過程中考慮的鄰域直徑,越大表示考慮的範圍越廣。
  • sigmaColor:色彩空間中的標準差,控制色彩相似性。
    這個值控制著鄰域中像素之間的色彩差異的容忍度。值越大,更多顏色範圍內的像素會被混合,從而使邊緣區域更模糊。
    效果:較高的 sigmaColor 值允許鄰域中的像素具有較大色彩差異,從而增加模糊程度;而較低的值則意味著只有色彩接近的像素才會被混合,邊緣能夠較好地保持
  • sigmaSpace:空間範圍中的標準差,控制空間相似性。
    用於空間範圍濾波的標準差。這個值決定了距離鄰域中心的像素的權重,控制空間鄰域中的像素的影響。值越大,遠離中心的像素也會參與計算,濾波的效果會更加平滑。
    效果:較大的 sigmaSpace 值將使濾波器考慮鄰域中更遠的像素(即影響更大範圍內的像素);而較小的 sigmaSpace 值則只會考慮鄰近的像素,濾波會更加局部化。



程式範例

平均模糊(Averaging Blur):

平滑皮膚效果,可以增加kernel_size(需奇數)平滑效果會更好喔~

import cv2

img = cv2.imread('imge.jpg')

# 使用 blur 進行平均模糊

kernel_size = (5, 5)
blur = cv2.blur(img, kernel_size)

cv2.imshow('Original Image', img)
cv2.imshow('Averaging blur', blur)
cv2.waitKey(0)
cv2.destroyAllWindows()
皮膚平滑效果

皮膚平滑效果

高斯模糊(Gaussian Blur):

相對於平均模糊,高斯模糊同樣達到平滑效果。但保留了更多的細節。

import cv2

img = cv2.imread('123.jpg')

# 使用 GaussianBlur 進行高斯模糊

kernel_size = (5, 5)
sigma = 0
GaussianBlur = cv2.GaussianBlur(img, kernel_size, sigma)

cv2.imshow('Original Image', img)
cv2.imshow('Averaging blur', GaussianBlur)
cv2.waitKey(0)
cv2.destroyAllWindows()

與平均模糊作比較

高斯與平均模糊作比較

高斯與平均模糊作比較

中值模糊(Median Blur):

與高斯模糊相比細節又相對少一點點,但又比平均模糊細節又多一點。

import cv2

img = cv2.imread('123.jpg')

# 使用 medianBlur 進行中值模糊
kernel_size = 5
medianBlur = cv2.medianBlur(img, kernel_size)

cv2.imshow('Original Image', img)
cv2.imshow('medianBlur', medianBlur)
cv2.waitKey(0)
cv2.destroyAllWindows()
高斯模糊與中值模糊比較

高斯模糊與中值模糊比較

雙邊濾波器(Bilateral Filter):

與中值模糊跟高斯模糊相比,雙邊濾波器在此圖上去躁能力更加好一些,皮膚平滑的效果也比較佳膚色看起來也較為正常,輪廓的邊緣也還行。

色彩相似性:雙邊濾波器能夠保留像素間的色彩相似性。這對於皮膚平滑等任務很重要,因為皮膚區域可能包含多種顏色,保留這些顏色的細節有助於更自然的外觀

空間相似性: 雙邊濾波器同時考慮了空間上的相似性,有助於保留輪廓和邊緣細節。這對於不僅僅是平滑,還要保留圖像整體結構的應用場景更為適合。

import cv2

img = cv2.imread('123.jpg')

# 使用 bilateralFilter 進行雙邊濾波

bilateral_filtered = cv2.bilateralFilter(img, d = 9, sigmaColor = 75, sigmaSpace = 75)

cv2.imshow('Original Image', img)
cv2.imshow('bilateral_filtered', bilateral_filtered)
cv2.waitKey(0)
cv2.destroyAllWindows()
雙邊濾波與中值相比

雙邊濾波與中值相比


總結

選擇模糊化方法應根據應用的具體需求:

  • 平均模糊高斯模糊適用於一般的平滑去噪工作
  • 中值模糊對於去除椒鹽噪聲效果較好。
  • 雙邊濾波器在需要同時保留色彩空間細節的情境中表現較佳

在實際應用中,通常需要進行實驗和比較,選擇最適合的模糊方法,最重要的是圖片模糊化後,有沒有達到自己想要的效果。










留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
143會員
253內容數
本業是影像辨識軟體開發,閒暇時間進修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/10/03
在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。
Thumbnail
2024/10/03
在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
常見的圖像銳利化方法: 銳化濾波器 增強對比度 Unsharp Masking
Thumbnail
常見的圖像銳利化方法: 銳化濾波器 增強對比度 Unsharp Masking
Thumbnail
首先我們先用小畫家,創建一個簡單的十字箭頭圖,在用高斯模糊將圖用模糊來模擬圖片糊掉的狀況。 如何檢測呢? 先假設在圖像清晰的狀況下,取邊緣的話線條應該是很明顯的吧,模糊的情況下,邊緣線條應該就會變多? 看下圖,由左看到右,在圖片清晰的狀況下,線條是相當明顯的 那有什麼方法將其量化成數字?
Thumbnail
首先我們先用小畫家,創建一個簡單的十字箭頭圖,在用高斯模糊將圖用模糊來模擬圖片糊掉的狀況。 如何檢測呢? 先假設在圖像清晰的狀況下,取邊緣的話線條應該是很明顯的吧,模糊的情況下,邊緣線條應該就會變多? 看下圖,由左看到右,在圖片清晰的狀況下,線條是相當明顯的 那有什麼方法將其量化成數字?
Thumbnail
伽瑪校正(Gamma correction)被視為影像增強的一種方法之一。 通過調整 gamma 值,可以改變圖像的亮度和對比度,從而使圖像更清晰或更具有視覺效果。 以下將利用cv2.LUT及numpy的組合實現伽瑪校正,及詳細介紹cv2.LUT 函式應用。
Thumbnail
伽瑪校正(Gamma correction)被視為影像增強的一種方法之一。 通過調整 gamma 值,可以改變圖像的亮度和對比度,從而使圖像更清晰或更具有視覺效果。 以下將利用cv2.LUT及numpy的組合實現伽瑪校正,及詳細介紹cv2.LUT 函式應用。
Thumbnail
在影像處理中,我們總是想要讓特徵更加明顯一點,可以使用銳利化的方式將特徵的邊緣增強,提升影像的細節,圖像銳利後就會有提升解析度的感覺。 拉普拉斯運算子是一種常用於影像增強的方法之一,特別是用於提高影像的邊緣和細節。 在OpenCV中,你可以使用cv2.Laplacian函數來應用拉普拉斯運算子。
Thumbnail
在影像處理中,我們總是想要讓特徵更加明顯一點,可以使用銳利化的方式將特徵的邊緣增強,提升影像的細節,圖像銳利後就會有提升解析度的感覺。 拉普拉斯運算子是一種常用於影像增強的方法之一,特別是用於提高影像的邊緣和細節。 在OpenCV中,你可以使用cv2.Laplacian函數來應用拉普拉斯運算子。
Thumbnail
直方圖均衡化處理是一種通過調整圖像的直方圖來改變圖像外觀和質量的圖像處理技術。這通常涉及對圖像的亮度、對比度和顏色分佈進行調整 此方法對於背景和前景均亮或均暗的影像很有用。​並在曝光過度或曝光不足的照片中獲得更好的細節。
Thumbnail
直方圖均衡化處理是一種通過調整圖像的直方圖來改變圖像外觀和質量的圖像處理技術。這通常涉及對圖像的亮度、對比度和顏色分佈進行調整 此方法對於背景和前景均亮或均暗的影像很有用。​並在曝光過度或曝光不足的照片中獲得更好的細節。
Thumbnail
在某些特別的情況下,需要去調整亮度及對比度,讓我們想要的影像特徵更加明顯 本文將介紹利用這兩個函數 cv2.convertScaleAbs 和 cv2.addWeighted 來調整亮度及對比度。
Thumbnail
在某些特別的情況下,需要去調整亮度及對比度,讓我們想要的影像特徵更加明顯 本文將介紹利用這兩個函數 cv2.convertScaleAbs 和 cv2.addWeighted 來調整亮度及對比度。
Thumbnail
涉及圖像處理和計算機視覺時,色彩空間轉換是一個常見操作,應用如下: 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
Thumbnail
涉及圖像處理和計算機視覺時,色彩空間轉換是一個常見操作,應用如下: 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News