Python | OpenCV 調整亮度、對比與負片效果
📚 前言
在前面我們學會了 區域裁切與 ROI 應用。
這一篇要進一步學習 調整亮度、對比與負片效果,這些操作屬於影像的像素值處理,能幫助我們改善影像可視性,或進行資料增強。
🔍 基本概念
- 亮度 (Brightness):調整整張圖片的明暗程度。
- 對比 (Contrast):調整圖片中亮暗差異的強度。
- 負片效果 (Negative):在底片拍攝時,影像的亮暗與色彩會與真實場景相反,這種「相反影像」稱為 負片。在數位影像中,只要用公式
255 - 像素值就能模擬負片效果。 - 補充:NumPy 與像素操作:OpenCV 讀取的影像其實是 NumPy 陣列,因此除了 OpenCV 提供的函式外,也能用 NumPy 公式直接調整亮度與對比度。詳細可參考 How do I adjust brightness, contrast and vibrance with opencv python?。
💻 範例程式:調整亮度
1 | import cv2 |

圖:調整亮度示例
💻 範例程式:調整對比
1 | import cv2 |

圖:調整對比示例
💻 範例程式:負片效果
1 | import cv2 |

圖:負片效果示例
⚠️ 注意事項
- 亮度與對比公式:
new_img = alpha * img + betaalpha控制對比beta控制亮度
- 負片效果用途:常用於影像增強、特殊視覺效果,或模擬底片影像。
- NumPy 陣列廣播:比逐像素迴圈更快,適合大部分影像處理。
- 過度調整:亮度或對比過度可能導致影像細節消失。
🎯 結語
這一篇我們學會了如何進行 調整亮度、對比與負片效果,並且理解了負片效果的原理。這些方法能改善影像可視性,並在資料增強中提供更多樣化的影像表現。
在下一篇,我們將進一步學習 基本濾波與模糊效果,探索如何利用濾波器改善或改變影像。
📖 如在學習過程中遇到疑問,或是想了解更多相關主題,建議回顧一下 Python | OpenCV 系列導讀,掌握完整的章節目錄,方便快速找到你需要的內容。
註:以上參考了
OpenCV Tutorials
OpenCV-Python Tutorials
convertScaleAbs()
