Python OpenCV调整图像亮度对比度及RGB色彩
python通过opencv库调整图像的步骤:
1. 读取图像
直接通过cv2库读取图像,可以读取jpg, png等格式
import cv2
import numpy as np
image = cv2.imread('C:\\D\\temp\\205250_last.png')
2. 调整图像亮度及对比度
OpenCV提供 convertScaleAbs 函数来调整对比度和亮度,可以直接调用该函数
如果只调整RGB颜色通道,则可以忽略此步骤
# 定义alpha和beta
alpha = 1.05 # 对比度控制 为了降低对比度,请使用0<alpha<1。对于更高的对比度,请使用alpha>1。
beta = -39 # 亮度控制 亮度值的良好范围为[-127,127]
# 调用convertScaleAbs函数
adjusted = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
3. 分离出图片的B,R,G颜色通道
使用split函数实现颜色通道分离
B, G, R = cv2.split(adjusted) # 分离出图片的B,R,G颜色通道
4. 分别调整R, G, B通道的值
根据图像宽高,设置对应的R, G, B调整值,完成矩阵计算
red_factor = np.full(image.shape[:2], 20, dtype="uint8") # 创建与image相同大小的矩阵
R_temp = R + red_factor
green_factor = np.full(image.shape[:2], -1, dtype="uint8") # 创建与image相同大小的矩阵
G_temp = G + green_factor
blue_factor = np.full(image.shape[:2], -39, dtype="uint8") # 创建与image相同大小的矩阵
B_temp = B + blue_factor
5. 合成图像
使用merge函数
output = cv2.merge([B_temp, G_temp, R_temp])
6. 显示图像
cv2.imshow('adjusted', output)