当前位置:首页 > 编程笔记 > 正文
已解决

Python OpenCV调整图像亮度对比度及RGB色彩

来自网友在路上 162862提问 提问时间:2023-11-19 20:26:18阅读次数: 62

最佳答案 问答题库628位专家为你答疑解惑

python通过opencv库调整图像的步骤:

1. 读取图像

直接通过cv2库读取图像,可以读取jpg, png等格式

import cv2
import numpy as npimage = 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_factorgreen_factor = np.full(image.shape[:2], -1, dtype="uint8")  # 创建与image相同大小的矩阵
G_temp = G + green_factorblue_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)

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"Python OpenCV调整图像亮度对比度及RGB色彩":http://eshow365.cn/6-39614-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!