修改图像对比度 原理详解

代码调用:

python 复制代码
image = Image.open(os.path.join(filepath,filename))
enhancer = ImageEnhance.Contrast(image)
enhanced_image = enhancer.enhance(2.0)
enhanced_image.save(os.path.join(dest_address, filename))
python 复制代码
class Contrast(_Enhance):
    """Adjust image contrast.

    This class can be used to control the contrast of an image, similar
    to the contrast control on a TV set. An enhancement factor of 0.0
    gives a solid grey image. A factor of 1.0 gives the original image.
    """

    def __init__(self, image):
        self.image = image
        mean = int(ImageStat.Stat(image.convert("L")).mean[0] + 0.5)
        # ImageStat.Stat 函数计算图像的均值,这里是将图像转换为灰度模式("L",即 luminance)后计算的均值。
        # 然后,将计算得到的均值四舍五入取整,存储在变量 mean 中。
        self.degenerate = Image.new("L", image.size, mean).convert(image.mode)
		# 创建一个与传入的图像尺寸相同的新图像,使用先前计算得到的均值填充所有像素,称为 "degenerate" 图像,意思是它是一个像素均值相同的图像。
		# 然后,通过 .convert(image.mode) 将其转换为与原始图像相同的颜色模式,以确保图像通道匹配。
        if "A" in image.getbands():
        # 检查原始图像是否包含透明度通道(Alpha 通道)。透明度通道在图像中通常用于控制像素的透明度级别。
            self.degenerate.putalpha(image.getchannel("A"))
            # 如果图像包含透明度通道,这一行代码将使用 image.getchannel("A") 获取原始图像的 Alpha 通道,并将它应用于 self.degenerate 图像,以使新图像也具有相同的透明度通道。
            # 这样做是为了确保在使用透明度信息的时候,新的 "degenerate" 图像与原始图像一致。

实际是将所有像素均值新单色图片和原图片按blend第三个参数的比例混合。

blend_img = Image.blend(img1, img2, alpha)

blend_img = img1 * (1 -- alpha) + img2* alpha

相关推荐
HelloDong几秒前
中国 AI Agent 争夺战:通义 1 亿 MAU、豆包预装手机、Kimi 做开发者工具——三条路线全拆解
人工智能
组合缺一1 分钟前
OpenSolon v3.9.3, v3.8.5, v3.7.5, v3.6.8 年货版发布
java·人工智能·分布式·ai·llm·solon·mcp
rit84324996 分钟前
matlab实现自适应稀疏表示同时完成图像融合与去噪
人工智能·计算机视觉·matlab
Volunteer Technology9 分钟前
LangGraph的Agent的上下文
人工智能·后端·python·langchain
桂花饼10 分钟前
从传统 CV 到生成式修复:详解 Sora 视频的高清去水印技术实现与 API 调用
人工智能·qwen3-next·veo3.1·nano banana pro·gemini-3-pro·sora2pro
程序员Agions10 分钟前
别把 AI 当神:它甚至不知道这行代码为什么能跑
人工智能·ai编程
天辛大师11 分钟前
天辛大师最新著作命理学三千问与AI全息智能体(首发)
大数据·人工智能·决策树·随机森林·启发式算法
码农三叔15 分钟前
(11-4-03)完整人形机器人的设计与实现案例:盲踩障碍物
人工智能·算法·机器人·人机交互·人形机器人
档案宝档案管理17 分钟前
从台账到检索,全面提升档案管理的便捷性和安全性
大数据·人工智能·档案·档案管理
Elastic 中国社区官方博客18 分钟前
使用 Elasticsearch 和 LLMs 进行实体解析,第 1 部分:为智能实体匹配做准备
大数据·人工智能·elasticsearch·搜索引擎·全文检索