更新於 2024/03/03閱讀時間約 3 分鐘

[OpenCV基礎][Python]影像增強_亮度和對比度調整

在某些特別的情況下,需要去調整亮度及對比度,讓我們想要的影像特徵更加明顯

本文將介紹利用這兩個函數 cv2.convertScaleAbs 和 cv2.addWeighted 來調整亮度及對比度。


亮度和對比度調整的函式:

cv2.convertScaleAbs

這個函數的主要目的是將輸入的影像進行線性縮放和平移操作,通常用於調整影像的對比度和亮度

dst = cv2.convertScaleAbs(src, alpha=alpha, beta=beta)
  • src: 輸入影像。
  • alpha: 乘法因子,用於線性縮放影像的對比度。如果 alpha 大於1,則增強對比度;如果 alpha 在0和1之間,則降低對比度。
  • beta: 加法因子,用於調整影像的亮度。可以通過增加或減少 beta 的值來調整影像的亮度。

程式範例

import cv2

image = cv2.imread('111.jpg')

# 增強對比度和亮度
adjusted_image = cv2.convertScaleAbs(image, alpha=1.5, beta=30)

# 顯示原始和增強後的影像
cv2.imshow('Original Image', image)
cv2.imshow('Adjusted Image', adjusted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

結果圖


cv2.addWeighted

cv2.addWeighted

用於將兩個影像進行線性組合,可用於調整影像的對比度和亮度。它通常用於混合兩張影像,調整它們的透明度,並在影像上疊加某些效果。

adjusted_image = cv2.addWeighted(image, alpha, np.zeros_like(image), 0, beta)

其中,alpha 是對比度的倍數,beta 是亮度的增量。

程式範例

import cv2
import numpy as np

image = cv2.imread('111.jpg')

alpha = 1.5
beta = 30

# 增強對比度和亮度
adjusted_image = cv2.addWeighted(image, alpha, np.zeros_like(image), 0, beta)

# 顯示原始和增強後的影像
cv2.imshow('Original Image', image)
cv2.imshow('Adjusted Image', adjusted_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

兩種比較圖


總結

如果你需要進行簡單的線性調整,或者對單通道(例如灰階)影像進行處理,則 cv2.convertScaleAbs 是一個簡單且有效的選擇。

如果你需要進行複雜的影像混合,則 cv2.addWeighted 可能更適合。



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.