Python探索性P图,四种增强方式快速玩转pillow库

news2024/9/22 3:36:11

嗨害大家好鸭!我是爱摸鱼的芝士❤

我们平时使用一些图像处理软件时,

经常会看到其对图像的亮度、对比度、色度或者锐度进行调整。

你是不是觉得这种技术的底层实现很高大上?

其实最基础的实现原理,

用 Python 实现只需要几行代码,

学会后你也可以进行简单的图像增强处理了。

图像增强哪家强

Python 中 PIL 模块中有一个叫做 ImageEnhance 的类,

该类专门用于图像的增强处理,

不仅可以增强(或减弱)图像的亮度、对比度、色度,

还可以用于增强图像的锐度。

要使用这个模块,你必须先安装 PIL库:

pip install pillow

图像增强处理

读取图像

image = Image.open('girl.jpeg')
image.show()

我们的原始图像是一个拿着西红柿的清纯女孩:
请添加图片描述

亮度增强

enh_bri = ImageEnhance.Brightness(image)
brightness = 4
image_brightened = enh_bri.enhance(brightness)
image_brightened.show()

为了对比明显,我们将原始图像的亮度增强4倍,看看效果:
请添加图片描述
增强后的图像过于曝光了,是不是有那么一点刺眼?

色度增强

enh_col = ImageEnhance.Color(image)
color = 4
image_colored = enh_col.enhance(color)
image_colored.show()

同样地,我们将原始图像的色度增强4倍,看看效果:
请添加图片描述
这张图像的色彩就比较浓厚了,顿时变成热成像…

对比度增强

enh_con = ImageEnhance.Contrast(image)
contrast = 4
image_contrasted = enh_con.enhance(contrast)
image_contrasted.show()

同样地,我们将原始图像的对比度增强4倍,看看效果:
请添加图片描述
这张图像就把细节处凸显得很明显了,有点像很早期的那种电影画面。

锐度增强

enh_sha = ImageEnhance.Sharpness(image)
sharpness = 4
image_sharped = enh_sha.enhance(sharpness)
image_sharped.show()

同样地,我们将原始图像的锐度增强4倍,看看效果:
请添加图片描述
锐度增强之后,
看起来还比较可以,
跟原图相比变化没那么明显。

总结

看完之后,是不是感觉很简单?
小姐姐真好看~

最基础的四项图像增强技能全部只需一行代码就可以实现。
我这里是对图像进行增强,

你也可以反向操作,
只需要将系数调整为小于1就可以实现图像减弱。

当然,实际的应用中,
我们肯定会将这些维度综合调优,
才能达到美图的效果。

哼 程序员也会P图的好不好?

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/480467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【力扣周赛】第343场周赛

【力扣周赛】第343场周赛 2660:保龄球游戏的获胜者题目描述解题思路 2661:找出叠涂元素题目描述解题思路 2660:保龄球游戏的获胜者 题目描述 描述:给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家…

系统集成项目管理工程师 笔记(第10章 项目质量管理)

文章目录 10.1.2 质量管理及其 发展史 35610.1.3 项目质量管理 35810.2.2 规划质量管理的输入 35910.2.3 规划质量管理的工具与技术 3601、成本效益分析法2、质量成本法(一致性成本【预防、评价】 和 非一致性成本【内部、外部】)3、七种基本质量工具&am…

【AI作诗】主流平台介绍+自主搭建

诗歌总是属于文人的浪漫,但随着技术的发展,理科生文艺起来,也就没文科生什么事了(开玩笑的)。通过本篇文章,笔者将给大家介绍主流的AI诗歌创作平台及如何自己搭建,以供大家学习参考。 技术的进…

0、Java开发常见(并发,JVM)

并发 问题详解请谈谈你对volatile的理解linkCAS你知道吗?link原子类Atomiclnteger的ABA问题谈谈?原子更新引用知道吗?link我们知道ArrayList是线程不安全,请编码写一个不安全的案例并给出解决方案link公平锁/非公平锁/可重入锁/递归锁/自旋…

快解析赋能企业私有云部署

很多企业形成了以总部为中心的多点生产体系结构,并借助网络化办公工具搭建跨区域协同办公系统,满足总部与分支机构间的信息互通,进而促进异地业务的信息共享,提高办公处理效率和综合管理水平。 北京某信息技术公司,主…

C# 使用OpenCV基本图像操作功能

C# 使用OpenCV OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。C#在上位机开发中比较常用,有些项目需要在上位机上加入一些机器视觉相关的功能,在下面简单介绍了C#中使用OpenCV…

JVM-0426

对象内存布局 对象的实例化 创建对象的方式: new 最常见的方式变形1:XX的静态方法 Class : 调用froName( )方法变形2:xxxBuilder / xxxFactory的静态方法 Class的newInstance( ):反射的方式,只能调用空参的…

自动控制原理笔记-频率响应法-频率特性的概念

目录 频率响应法: 频率特性的概念: 一、频率特性的定义: 二、频率特性的求法: 三、频率特性的物理意义: 四、频率特性的图形表示方法: 频率响应法: 基本思想:通过开环频率特性的图形对系统进行分析。 主要优点&…

【2023华中杯数学建模】B 题 小学数学应用题相似性度量及难度评估详细建模方案及实现代码

更新时间:2023-5-1 14:00 1 题目 B 题 小学数学应用题相似性度量及难度评估 某 MOOC 在线教育平台希望能够进行个性化教学,实现用户自主学习。在用户学习时,系统从题库中随机抽取若干道与例题同步的随堂测试题,记录、分析学生的学…

java的类加载浅析

类加载 类加载器 类加载器是Java虚拟机(JVM)的一个组成部分,它的主要任务是在运行时动态加载类和资源,以便程序能够使用它们。类加载器从文件系统、网络或其他来源中获取类的字节码,并将其转换为JVM可执行的形式&…

机器学习基础知识之交叉验证

文章目录 交叉验证定义1、随机子抽样验证2、K折交叉验证3、留一法交叉验证4、自助采样验证 交叉验证定义 在使用某一个数据集对模型进行训练时,模型的实际训练情况会受到数据集的直接影响,且其实际训练结果是难以确定的,极有可能出现欠拟合与…

【实验报告】实验四、彩色图像处理

一、实验目的 使用MatLab软件对图像进行彩色处理,熟悉使用MatLab软件进行图像彩 色处理的有关方法,并体会到图像彩色处理技术以及对图像处理的效果。 二、实验原理 (一)一幅RGB图像就是彩色像素的一个M x N x 3数组&#xff0…

视频搬砖项目【一个技术员是如何轻松利用视频搬运项目做到日入2000+】

无门槛人人可做副业项目,视频搬砖收益,实测一天2000! 今天给大家分享一个微信看一看 的项目,操作非常简单,小白也很容易上手,不需要像某音一样去卖货,只要发布作品就能够有收益。 第一个、项目…

vue项目无法运行报错 error:0308010C:digital envelope routines::unsupported

文章目录 问题原因解决方法方法一方法二 问题 运行vue项目,报错 error:0308010C:digital envelope routines::unsupported 原因 网上查了一下,大体原因就是node版本不对,node版本太高 也有说我没有使用 Node JS 的 LTS(长期支…

ROS2交叉编译操作

ROS2移植过程 在移植ROS2之前,先确认需要移植的版本以及其对应的依赖,这些信息可以在 ROS 2 Releases and Target Platforms 中有介绍,可依据自身需要使用的平台,参考该链接进行选择,下面以ROS2 Humble为例进行介绍ROS2移植操作。 ROS Humble依赖如下: 而ROS2的构建依赖…

sed进阶之保留空间和排除命令

shell脚本编程系列 保留空间 模式空间(pattern space)是一块活跃的缓冲区,在sed编辑器执行命令时保存着待检查的文本,但它并不是sed编辑器保存文本的唯一空间。sed编辑器还有另一块称作保留空间(hold space&#xff0…

【深度学习】BERT是什么?怎么玩的?

RNN 也是一种Seq2Seq网络 这种RNN就不能并行运算,且对于长句子会造成损失遗忘或者梯度爆炸 Transfomer Transformer由且仅由self-Attenion和Feed Forward Neural Network组成。一个基于Transformer的可训练的神经网络可以通过堆叠Transformer的形式进行搭建&…

美国大学特别重视的批判性思维,是如何培养出来的?

美国大学非常注重培养学生的批判性思维,爱因斯坦有一句名言:“大学教育的价值,不在于学习很多事实,而在于训练大脑会思考。” 批判性思维有两个典型特征:(1)批判性思维善于对通常被接受的结论提…

SpringMVC学习总结

SpringMVC简介 我们首先要了解MVC是什么 MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean&#xf…

oracle 19创建用户时出现“ORA-65096: invalid common user or role name”的错误

ORACLE 19命令 版本:Version 19.3.0.0.0 一、ORACLE 19创建用户命令 1、切换到oracle用户 [rootoracledb ~]# su - oracle Last login: Tue Jun 1 01:48:10 PDT 2021 on pts/5 2、以dba身份进入sql语句 [oracleoracledb ~]$ sqlplus "/as sysdba" …