问题描述
我想使用此像素变换操作来调整图像的亮度和对比度:
g(i,j)=α* f(i,j)+β
其中 f(i,j)是原始BGR图像, g(i,j)是调整后的图像,而(i,j) 是像素索引。
显然可以使用Y'UV颜色空间(也称为YUV)中亮度通道(Y')的平均值来估算alpha和beta参数(又称为增益和偏差)。[1]
首先,我找到亮度通道的平均值:
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页最后一段中的平均亮度来估算alpha(增益)和beta(偏置)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)