Python | OpenCV 即時馬賽克與模糊處理
📚 前言
在前一篇我們學會了 圖片與影片即時標記與繪圖。
這一篇要進一步介紹 即時馬賽克與模糊處理,並結合滑鼠事件互動。
透過這項技術,我們可以在圖片或影片中框選區域,並即時套用馬賽克或模糊效果,常用於隱私保護、教學影片或監控系統。
🔎 原理說明
- 馬賽克 (Mosaic):將區域縮小再放大,形成像素化效果。
- 模糊 (Blur):使用高斯模糊或平均模糊,讓區域變得柔和不清晰。
- 滑鼠事件:透過
cv2.setMouseCallback()框選區域,並即時套用效果。
🧠 函式與參數說明
📌 cv2.resize()
縮放圖片,用於馬賽克效果
1 | cv2.resize(img, dsize, interpolation) |
- img:要縮放的圖片。
- dsize:縮放後的大小
(width, height)。 - interpolation:插值方式,例如
cv2.INTER_LINEAR或cv2.INTER_NEAREST。
📌 cv2.GaussianBlur()
高斯模糊
1 | cv2.GaussianBlur(img, ksize, sigmaX) |
- img:要模糊的圖片。
- ksize:模糊範圍大小
(width, height),必須為奇數。 - sigmaX:高斯函數在 X 方向的標準差。
💻 範例程式一 — 圖片即時馬賽克與模糊
1 | import cv2 |

圖:圖片即時馬賽克與模糊,滑鼠框選區域後套用效果
💻 範例程式二 — 影片即時馬賽克與模糊
1 | import cv2 |

圖:影片即時馬賽克與模糊,滑鼠框選區域後套用效果
⚠️ 注意事項
- 框選座標需在圖片或影片範圍內,否則會出錯。
- 馬賽克效果依縮放大小決定顆粒粗細。
- 模糊效果需選擇合適的
ksize,數值越大模糊越明顯。 - 在影片範例中需依影片 FPS 調整
cv2.waitKey()的數值。
📊 應用場景
- 隱私保護:遮蔽人臉或敏感資訊。
- 教學影片:模糊背景,凸顯重點。
- 監控系統:即時隱藏不必要的資訊。
- 互動應用:讓使用者自由選擇區域並套用效果。
🎯 結語
本篇我們學會了如何使用 OpenCV 即時馬賽克與模糊處理,透過滑鼠事件在圖片或影片中框選區域並套用效果。
這樣的互動方式讓影像處理更靈活,後續可以延伸到 人臉偵測與追蹤,打造更智慧的影像應用。
📖 如在學習過程中遇到疑問,或是想了解更多相關主題,建議回顧一下 Python | OpenCV 系列導讀,掌握完整的章節目錄,方便快速找到你需要的內容。
註:以上參考了
OpenCV Tutorials
OpenCV-Python Tutorials
Pexels — 免費影片素材
