7️⃣ 影像濾波與去雜訊
🎯 什麼是影像濾波與去雜訊?
影像通常會受到雜訊影響,導致辨識效果下降。OpenCV 提供各種 影像濾波技術 來減少雜訊並增強影像品質。
✅ 適用場景:
- 去除影像雜訊(平滑化影像)
- 強化邊緣細節(保留影像重要特徵)
- 提高物件偵測的準確度(減少誤偵測)
✅ 平均濾波(Averaging Filter)
平均濾波是一種簡單的去雜訊技術,適用於均勻化影像。
import cv2
import numpy as np
# 讀取影像
image = cv2.imread("image.jpg")
# 應用平均濾波
blurred = cv2.blur(image, (5, 5))
cv2.imshow("Averaging Filter", blurred)
cv2.waitKey(0)
cv2.destroyAllWindows()
✅ 這種方法會讓影像變模糊,適合用來降低隨機雜訊。
✅ 高斯模糊(Gaussian Blur)
高斯模糊使用 權重平均,可以有效去除影像雜訊,同時保留更多細節。
# 應用高斯模糊
gaussian_blur = cv2.GaussianBlur(image, (5, 5), 0)
cv2.imshow("Gaussian Blur", gaussian_blur)
cv2.waitKey(0)
cv2.destroyAllWindows()
✅ 中值濾波(Median Blur)
中值濾波適用於去除 椒鹽雜訊(Salt and Pepper Noise)。
# 應用中值濾波
median_blur = cv2.medianBlur(image, 5)
cv2.imshow("Median Blur", median_blur)
cv2.waitKey(0)
cv2.destroyAllWindows()
✅ 雙邊濾波(Bilateral Filter)
雙邊濾波能夠在 去除雜訊的同時保留邊緣細節。
# 應用雙邊濾波
bilateral = cv2.bilateralFilter(image, 9, 75, 75)
cv2.imshow("Bilateral Filter", bilateral)
cv2.waitKey(0)
cv2.destroyAllWindows()
✅ 這是最適合人臉影像處理的濾波方法,可以保留細節紋理。
📝 總結
功能 | 語法 |
---|---|
平均濾波 | cv2.blur(image, (5,5)) |
高斯模糊 | cv2.GaussianBlur(image, (5,5), 0) |
中值濾波 | cv2.medianBlur(image, 5) |
雙邊濾波 | cv2.bilateralFilter(image, 9, 75, 75) |
🚀 現在你已經學會如何使用 OpenCV 進行影像去雜訊處理!接下來,我們將學習 OpenCV 與機器學習的應用! 😊