Python 利用4行代码实现图片灰度化

news/2024/8/26 8:11:02

背景

不论是在进行深度学习时的图片处理,还是在商业用途出版书刊,基本都会用到对图片进行灰度转换,也就是灰度化,本文章利用简单的4行代码来快速实现图片灰度化,仅供参考

效果

效果

实现代码

from PIL import Image
wechat_image='./微信头像.jpg'
wechat_image_greyscale=Image.open(wechat_image).convert('L')   #对图片进行灰度化
wechat_image_greyscale.save('微信头像_灰度化.jpg')

实现代码

图像灰度转化

图像是由红(Red)、绿(Green)、蓝(Blue)三原色来表示,R、G、B的取值范围均为0~255,正常读取的图片构成的三维矩阵就是图像各像素点的RGB值。
图像的灰度化,就是让像素点矩阵中的每一个像素点都满足这样的关系:R=G=B,此时的这个值叫做灰度值
灰度化后的R = 处理前的R * 0.299+ 处理前的G * 0.587 +处理前的B * 0.114
灰度化后的G = 处理前的R * 0.299+ 处理前的G * 0.587 +处理前的B * 0.114
灰度化后的B = 处理前的R * 0.299+ 处理前的G * 0.587 +处理前的B * 0.114

PIL库里面在灰度转化时,利用的公式
When translating a color image to greyscale (mode “L”), the library uses the ITU-R 601-2 luma transform:
L = R * 299/1000 + G * 587/1000 + B * 114/1000

历史相关文章

  • 利用Python生成手绘效果的图片
  • 利用Python 自己动手制作动漫效果图片
  • Python 利用聚类算法对图片进行颜色压缩

http://lihuaxi.xjx100.cn/news/295593.html

相关文章

代码随想录算法训练营第四十九天|121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

LeetCode 121. 买卖股票的最佳时机 链接:121. 买卖股票的最佳时机 思路: 这道题目用动规写起来效率其实是不如贪心的,但是对于解类似的题目还是有帮助,重点是理解动规的过程。首先定义下标:dp[i][0]表示第i天持有股…

Windows8系统下DOSBox编译、链接、执行汇编语言步骤

下载安装好DOSBox后,同时下载debug、link、masm程序。 (1)建立工作目录,编写汇编语言源文件,并将debug、link、masm程序放在同一目录下。(下图中ass.asm是汇编语言源文件) (2&#x…

【学习笔记】深度学习入门:基于Python的理论与实现-误差反向传播法

CONTENTS五、误差反向传播法5.1 计算图5.2 链式法则5.3 反向传播5.4 简单层的实现5.5 激活函数层的实现5.6 Affine/Softmax层的实现5.7 误差反向传播法的实现五、误差反向传播法 5.1 计算图 先引入一个很简单的问题:在超市买了222个100100100元一个的苹果&#xf…

Kafka 开发架构的一些问题汇总

一、Kafka 存在哪些方面的优势 1. 多生产者 可以无缝地支持多个生产者,不管客户端在使用单个主题还是多个主题。 2. 多消费者 支持多个消费者从一个单独的消息流上读取数据,而且消费者之间互不影响。 3. 基于磁盘的数据存储 支持消费者非实时地读取…

Redis使用基础教程

本篇文章转载自:通俗易懂的Redis数据结构基础教程_Java程序员-张凯的博客-CSDN博客 Redis有5个基本数据结构,string、list、hash、set和zset。它们是日常开发中使用频率非常高应用最为广泛的数据结构,把这5个数据结构都吃透了,你…

SpringCloud_第3章_微服务保护_Sentinel

SpringCloud_第3章_微服务保护 文章目录SpringCloud_第3章_微服务保护1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel1.4…

【Android】Fragment使用

使用Fragment 我们可以把页面结构划分成几块,每块使用一个Fragment来管理。这样我们可以更加方便的在运行过程中动态地更新Activity中的用户界面,日后迭代更新、维护也是更加方便。 Fragment并不能单独使用,他需要嵌套在Activity 中使用&…

程序过程分析——从编译到执行

汇编源程序 mov ax,4c00H int 21H 这两条指令可以实现程序返回的功能。 编译 使用微软的masm5.0汇编编译器,文件名为masm.exe。 在编译的过程中,我们提供了一个输入,即源程序文件。最多可以得到3个输出:目标文件(.obj)、列表文件(.Ist)、交叉引用文件(.erf),这3个输…