使用luma通道的平均值调整图像亮度和对比度

2024-05-19 01:07:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用此像素变换操作调整图像的亮度和对比度:

g(i,j)=α*f(i,j)+β

其中,f(i,j)是原始BGR图像,g(i,j)是调整后的图像,(i,j)是像素索引

阿尔法和贝塔参数(也称增益和偏差)显然可以使用来自Y'UV颜色空间(也称为YUV)的luma通道(Y')的平均值来估计。[1]

首先,我找到了luma通道的平均值:

import cv2
import numpy as np

bgr = cv2.imread('/original_image.png')

bgr_avgs = np.average(np.average(bgr, axis=0), axis=0) # find avg of each channel
y_coeffs = np.array([ 0.114, 0.587, 0.299 ]) # BGR
luma_avg = np.dot(y_coeffs, bgr_avgs)

然后我想从luma_avg计算alpha和beta,以进行以下转换:

adjusted_img = cv2.convertScaleAbs(bgr, alpha=alpha, beta=beta)

我愿意使用另一种方法。如有任何见解,将不胜感激

[1]El Harraj和Raissouni声称,α(增益)和β(偏差)可以根据他们论文OCR Accuracy Improvement on Dcoument Images Through a Novel Pre-Processing Approach, SIPIJ Vol.6, No.4 (Aug 2015)第7页最后一段中的平均luma进行估算


Tags: 图像importalphalumanp增益像素cv2

热门问题