图像亮度处理

本文详细解析图像亮度的概念,以及如何通过多种算法将彩色图像转换为灰度图像,探讨亮度与色相的关系。

图像的亮度, 指的是图像像素的强度, 黑色为最暗, 白色为最亮, 黑色用0来表示, 白色用255来表示.

一个像素, 基本上是用RGB三个颜色分量来表示的. R(0-255), G(0-255),B(0-255)

图像的亮度一些人解释为灰度, 就是去掉颜色之后, 还剩下的东西, 表示了图像的明暗程度. 

每个像素都有相应的亮度,这个亮度和色相是没有关系的,同样的亮度既可以是红色也可以是绿色,就如同黑白(灰度)电视机中的图像一样,单凭一个灰度并不能确定是红色还是绿色。 所以,像素的亮度和色相是无关的。不能说绿色比红色亮,这是错误的说法。 也有些人说亮度是明度.

得到像素的亮度值有多种算法, 现在已经归结到灰度值的算法中了.为什么说红色和绿色的亮度值可以是一样的呢? 因为灰度图像的RGB三个分量都是相等的. 比如RGB

方法1: GRAY= (R+G+B)/3 

这种方法, 被称为平均值法.来源于I色彩空间中I分量的计算公式


方法2: 0.11*R+0.59*G+0.3*B


待续...

### 使用Python实现图像亮度调整 #### Pillow库实现图像亮度调整 为了调整图像亮度,`Pillow`库是一个非常流行的选择。该库中的`ImageEnhance`模块提供了专门用于调整图片亮度的功能。具体来说,可以通过`ImageEnhance.Brightness()`类创建一个亮度增强器对象,并利用此对象的`enhance()`方法来调节亮度[^2]。 ```python from PIL import Image, ImageEnhance def adjust_brightness_pil(image_path, factor): """ 调整给定路径下图片的亮度 参数: image_path (str): 输入图片文件路径. factor (float): 亮度因子 (>1 增加亮度; <1 减少亮度). 返回: Image.Image: 处理后的图片对象. """ with Image.open(image_path) as img: enhancer = ImageEnhance.Brightness(img) enhanced_img = enhancer.enhance(factor) return enhanced_img # 示例用法 adjusted_image = adjust_brightness_pil('example.jpg', 2.0) # 将亮度提高两倍 adjusted_image.show() ``` #### Scikit-image库实现图像亮度调整 除了`Pillow`之外,另一个强大的工具包是`scikit-image`。这个库同样支持多种方式修改图像属性,包括亮度。要使用它来进行亮度调整,则需先加载所需模块并读取目标图像,之后再应用相应的转换函数[^4]。 ```python import numpy as np from skimage import io, exposure def adjust_brightness_skimage(image_path, gamma=1.0): """ 利用gamma校正的方式调整指定图片的亮度 参数: image_path (str): 输入图片文件路径. gamma (float): Gamma值,默认为1表示不改变亮度 返回: ndarray: 修改过亮度后的numpy数组形式的图片. """ img = io.imread(image_path) adjusted = exposure.adjust_gamma(img, gamma) return adjusted # 示例用法 brightened_image_array = adjust_brightness_skimage('sample.png', 0.5) # 降低一半亮度 io.imshow(brightened_image_array) io.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值