python实现彩色图转换成灰度图

 更新时间:2019年01月15日 11:36:02   作者:萌妹子哦哦  
这篇文章主要为大家详细介绍了python实现彩色图转换成灰度图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python实现彩色图转换成灰度图的具体代码,供大家参考,具体内容如下

from PIL import Image
import os
 
# 图像组成:红绿蓝 (RGB)三原色组成 亮度(255,255,255)
image = "Annie1.jpg"
img = Image.open(image)
img_all = "素描" + image
new = Image.new("L", img.size, 255)
width, height = img.size
img = img.convert("L")
# print(img.size)
# print(img.mode) #RBG
#
# img_get = img.getpixel((0, 0))
# print(img_get) #三原色通道
#
# img_L=img.convert('L')
# print(img_L)
# img_get_L=img_L.getpixel((0,0)) #换算 得到灰度值
# print(img_get_L)
 
# 定义画笔的大小
Pen_size = 3
# 色差扩散器
Color_Diff = 6
for i in range(Pen_size + 1, width - Pen_size - 1):
 for j in range(Pen_size + 1, height - Pen_size - 1):
  # 原始的颜色
  originalColor = 255
  lcolor = sum([img.getpixel((i - r, j)) for r in range(Pen_size)]) // Pen_size
  rcolor = sum([img.getpixel((i + r, j)) for r in range(Pen_size)]) // Pen_size
 
  # 通道----颜料
  if abs(lcolor - rcolor) > Color_Diff:
   originalColor -= (255 - img.getpixel((i, j))) // 4
   new.putpixel((i, j), originalColor)
 
  ucolor = sum([img.getpixel((i, j - r)) for r in range(Pen_size)]) // Pen_size
  dcolor = sum([img.getpixel((i, j + r)) for r in range(Pen_size)]) // Pen_size
 
  # 通道----颜料
  if abs(ucolor - dcolor) > Color_Diff:
   originalColor -= (255 - img.getpixel((i, j))) // 4
   new.putpixel((i, j), originalColor)
 
  acolor = sum([img.getpixel((i - r, j - r)) for r in range(Pen_size)]) // Pen_size
  bcolor = sum([img.getpixel((i + r, j + r)) for r in range(Pen_size)]) // Pen_size
 
  # 通道----颜料
  if abs(acolor - bcolor) > Color_Diff:
   originalColor -= (255 - img.getpixel((i, j))) // 4
   new.putpixel((i, j), originalColor)
 
  qcolor = sum([img.getpixel((i + r, j - r)) for r in range(Pen_size)]) // Pen_size
  wcolor = sum([img.getpixel((i - r, j + r)) for r in range(Pen_size)]) // Pen_size
 
  # 通道----颜料
  if abs(qcolor - wcolor) > Color_Diff:
   originalColor -= (255 - img.getpixel((i, j))) // 4
   new.putpixel((i, j), originalColor)
 
new.save(img_all)
 
i = os.system('mshta vbscript createobject("sapi.spvoice").speak("%s")(window.close)' % '您的图片转换好了')
os.system(img_all)

原图像:

转换后

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 基于Python新建用户并产生随机密码过程解析

    基于Python新建用户并产生随机密码过程解析

    这篇文章主要介绍了基于Python新建用户并产生随机密码过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • pytorch人工智能之torch.gather算子用法示例

    pytorch人工智能之torch.gather算子用法示例

    这篇文章主要介绍了pytorch人工智能之torch.gather算子用法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • flask框架配置mysql数据库操作详解

    flask框架配置mysql数据库操作详解

    这篇文章主要介绍了flask框架配置mysql数据库操作,结合实例形式详细分析了flask框架配置mysql数据库及连接访问等相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • Python中@classmethod和@staticmethod的区别

    Python中@classmethod和@staticmethod的区别

    本文主要介绍了Python中@classmethod和@staticmethod的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • Python脚本代码加速运行优化技巧

    Python脚本代码加速运行优化技巧

    这篇文章主要介绍了Python脚本代码加速运行优化技巧,Python是一种解释性语言,虽然易于使用和阅读,但在性能方面可能不如编译语言如C或C++,然而,通过一些优化技巧,可以显著提高Python代码的运行速度
    2021-04-04
  • python自然语言编码转换模块codecs介绍

    python自然语言编码转换模块codecs介绍

    这篇文章主要介绍了python自然语言编码转换模块codecs介绍,codecs专门用作编码转换,通过它的接口是可以扩展到其他关于代码方面的转换,需要的朋友可以参考下
    2015-04-04
  • 在pytorch中计算准确率,召回率和F1值的操作

    在pytorch中计算准确率,召回率和F1值的操作

    这篇文章主要介绍了在pytorch中计算准确率,召回率和F1值的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python Prometheus接口揭秘数据科学新技巧

    Python Prometheus接口揭秘数据科学新技巧

    本篇文章将分享Prometheus API的基本概念到PromQL查询语言的应用,再到如何通过Python与Prometheus API进行无缝交互,通过丰富的示例代码和详细的讲解,将解锁使用Python进行实时监控的奇妙世界,为读者打开更广阔的数据分析视野
    2024-01-01
  • django框架面向对象ORM模型继承用法实例分析

    django框架面向对象ORM模型继承用法实例分析

    这篇文章主要介绍了django框架面向对象ORM模型继承用法,结合实例形式分析了Django框架ORM模型抽象类继承、多表继承及代理模型继承三种继承方式实现技巧,需要的朋友可以参考下
    2019-07-07
  • PyCharm2019 安装和配置教程详解附激活码

    PyCharm2019 安装和配置教程详解附激活码

    这篇文章主要介绍了PyCharm2019 安装和配置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论