【图像处理】伽马亮度矫正

文章介绍了如何使用传统Gamma函数进行图像亮度矫正,包括归一化、预补偿和反归一化过程。然后提出了一种快速算法,利用LUT(查找表)在已知像素值范围和gamma值的情况下提高校正效率。给出了Python和C++代码示例。

采集的图像部分区域较亮,而部分区域较暗,需要进行亮度矫正来调整整个图片的亮度,使得整体亮度较为均匀。

传统Gamma函数亮度矫正

gamma校正原理
在这里插入图片描述

假设图像F中有一个像素A,值是 200 ,那么对这个像素进行校正必须执行如下步骤:

1.归一化 :将像素值转换为 0 ~ 1 之间的实数。 算法如下 : F/255 。对于像素 A 而言 , 其对应的归一化值为 0. 7843 。

2.预补偿 :求出gamma 值。这一步包含一个 求指数运算。若 gamma = 1 /2.2 = 0. 454545 , 对归一化后的 A 值进行预补偿的结果就 是 0. 7843 ^0. 454545 = 0. 8954 。

3.反归一化 :将经过预补偿的实数值反变换为 0 ~ 255 之间的整数值,即将预补偿的实数值乘以255。0.8954×255=228 , 这个 228 就是最后送 入显示器的数据。
即当 gamma<1时,输出图像变亮;当gamma >1时,输出图像变暗。

以下是python代码:

#-*-coding: UTF-8-*-
import numpy as np
import cv2
import math
from matplotlib import pyplot as plt
#import Recognise
 
#读取图片
img = cv2.imread('5.jpg')
#将原图片(RGB)转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#显示并保存
cv2.imshow('gray', gray)
cv2.imwrite('gray.jpg', gray)
#将灰度图做gamma校正运算
image = np.power(gray/255.0
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值