我看谁还说程序员不会P图?拜托~4行python代码就够~
我们平时使用一些图像处理软件时,经常会看到其对图像的亮度、对比度、色度或者锐度进行调整。你是不是觉得这种技术的底层实现很高大上?
其实最基础的实现原理,用 Python 实现只需要几行代码,学会后你也可以进行简单的图像增强处理了。
图像增强哪家强
Python 中 PIL 模块中有一个叫做 ImageEnhance 的类,该类专门用于图像的增强处理,不仅可以增强(或减弱)图像的亮度、对比度、色度,还可以用于增强图像的锐度。
要使用这个模块,你必须先安装 PIL库:
pip install pillow
图像增强处理
读取图像
image = Image.open('girl.jpeg')
image.show()
我们的原始图像是一个拿着西红柿的清纯女孩:
亮度增强
Python学习交流Q群:660193417###
enh_bri = ImageEnhance.Brightness(image)
brightness = 4
image_brightened = enh_bri.enhance(brightness)
image_brightened.show()
为了对比明显,我们将原始图像的亮度增强4倍,看看效果:
增强后的图像过于曝光了,是不是有那么一点刺眼?
色度增强
Python学习交流Q群:660193417###
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图的好不好?

我看谁还说程序员不会P图?拜托~4行python代码就够~的更多相关文章
- 程序员式优雅表白,教你用python代码画爱心
还能用python代码画爱心?还有这种操作?这是什么原理? 不相信python代码可以画爱心?先来一张效果图来看看效果吧! 用python代码画爱心的思路是怎样的? 1.怎么画心形曲线 2.怎么填满心 ...
- Web程序员开发App系列 - 调试Android和IOS手机代码(补图)
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- 程序员的自我修养系列(一):优雅的代码管理工具之GitHub
1.导言 代码管理是程序员经常遇到一个问题,很多童鞋将代码保存到本地硬盘,此种方法管理混乱,也存在代码丢失的风险,且版本无法控制,因此养成良好的代码管理习惯是程序员的必修课.在众多代码管理工具中笔者在 ...
- https的基本原理,看完你的程序员女朋友再也不和你提分手了
[http风险] 首先,我们来讲一下平时上网的时候,存在的风险. 初步接触过网络的同学都知道,网络上是很不安全的,尤其是各种公共场合的免费WIFI,以及手机上各种免费上网的万能钥匙.这些不安全因素会导 ...
- 10年程序员谈.Net程序员的职业规划(图/文)
原文地址:http://bbs.csdn.net/topics/390736769 从事Dotnet程序开发工作近10年了,从开始的月薪3k的小程序员菜鸟,到现在年薪60w的项目总经理,从战战兢兢的去 ...
- 作为一名程序员,在面试中如何展现你Python的coding能力?
来源商业新知,原文标题:如何在一场面试中展现你对Python的coding能力? 如果你已经通过了招聘人员的电话面试,那么下面正是该展现你代码能力的时候了.无论是练习,作业,还是现场白板面试,这都是你 ...
- 浪姐打分看不够?用几行Python代码模拟评委打分
大家好鸭~我是小熊猫比赛大家都看过吧,每次是不是都对比赛成绩充满期待.特别是浪姐的打分看的简直欲罢不能- 今天就用Python来模拟评委打分,这个案例很短也很简单,很适合新手跟小白练习. 在某次十佳歌 ...
- 从GitHub Jobs! 看技术发展趋势! 程序员进阶必备!
0. https://jobs.github.com/positions GitHub Jobs: 1. https://jobs.github.com/positions/38bb8dc8-b5b4 ...
- 如何初学python?资深程序员浅谈,教你学会入门python
我认为python应该是现在市面上最简单,也是最值钱的一门编程语言,所以学习的人是越来越多,但是,如何初学python?这个问题困扰着很多初学python的人,今天,给大家简单聊聊这个话题. 我曾经也 ...
随机推荐
- Java-GUI编程之处理位图
如果仅仅绘制一些简单的几何图形,程序的图形效果依然比较单调 . AWT 也允许在组件上绘制位图, Graphics 提供了 drawlmage() 方法用于绘制位图,该方法需要一个Image参数一一代 ...
- for in 语法遍历对象
1. 语法格式 for (变量 in 对象) { console.log(变量) } 2. 代码实例 // 遍历对象 var obj = { name: 'pink老师', age: 18, se ...
- el-transfer增加拖拽功能
el-transfer增加拖拽排序,左右互相拖拽功能: npm i sortablejs <template> <el-transfer ref="transfer&quo ...
- 获取iframe的window对象
在父窗口中获取iframe中的元素 // JS // 方法1: var iframeWindow = window.frames["iframe的name或id"]; iframe ...
- synchronized锁及其锁升级
点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 多线程加锁有两种方式 利用Sychronized关键字 利用Lock接口 ...
- XCTF练习题---MISC---小小的PDF
XCTF练习题---MISC---小小的PDF flag:SYC{so_so_so_easy} 解题步骤: 1.观察题目,下载附件 2.下载完发现是一个PDF文件,经过转Word,查看属性,十六进制查 ...
- 1.6 为什么要学Linux,它比Windows好在哪里?
早在 20 世纪 70 年代,UNIX 系统是开源而且免费的,但是在 1979 年时,AT&T 公司宣布了对 UNIX 系统的商业化计划,随之开源软件业转变成了版权式软件产业,源代码被当作商业 ...
- 实战|Hadoop大数据集群搭建
一个执着于技术的公众号 前言 今天来为粉丝圆梦啦 话不多说,咱直接进入实战环节 实验环境: 主机名 IP地址 角色 qll251 192.16 ...
- Linux网络重点知识总结性梳理
一个执着于技术的公众号 1 OSI七层模型 层次 说明 功能/协议 应用层 应用程序及接口 提供应用程序的接口:FTP telnet http pop3等 表示层 对数据进行转换.加密和压缩 将上层的 ...
- 超清晰的 DNS 原理入门指南,看这一篇就够了~
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! DNS 是互联网核心协议之一.不管是上网浏览,还是编程开 ...