我们平时使用一些图像处理软件时,经常会看到其对图像的亮度、对比度、色度或者锐度进行调整。你是不是觉得这种技术的底层实现很高大上?

其实最基础的实现原理,用 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图的好不好?

最新文章

  1. struts通过action返回json
  2. eclipse中去除build时总是js错误的问题
  3. 网页的Width ,Height
  4. Unity 联网小测试(WWW)
  5. linux入命令基础
  6. pushlet实现服务器端向客户端推送信息
  7. SQL Server中的事务日志管理(3/9):事务日志,备份与恢复
  8. Linux 打包和压缩 方法详解
  9. Implementation Documentation[转]
  10. 原码 & 反码 & 补码 & 详解
  11. 转(C#)Winform中MD5加密
  12. BZOJ1465: 糖果传递
  13. (转帖) 如何將值delay n個clock? (SOC) (Verilog)
  14. visual studio 中GIT的用法
  15. struts1面试题
  16. Java彻底 - WEB容器的侦听具体解释 ServletContextListener
  17. 新概念英语(1-21)Whick book
  18. RabbitMQ框架构建系列(二)——RabbitMQ基础知识介绍
  19. angular.isNumber()
  20. 通过GPLOT过程制作图形

热门文章

  1. JavaScript基础第01天笔记
  2. Android第1-2周作业
  3. python基础练习题(题目 字母识词)
  4. CRUSE: Convolutional Recurrent U-net for Speech Enhancement
  5. MySQL性能优化 - 别再只会说加索引了
  6. VUE3 之 Teleport - 这个系列的教程通俗易懂,适合新手
  7. 基于 range 的 for 循环和 auto
  8. docker使用详解
  9. 项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
  10. 技术分享 | 云原生多模型 NoSQL 概述