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如何为list实现find方法

    python如何为list实现find方法

    这篇文章主要介绍了python如何为list实现find方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python实现自动计算特定格式的时间差

    Python实现自动计算特定格式的时间差

    这篇文章主要介绍了利用Python实现在输入一个特定格式的时间后,自动获取前进或者后退多少小时之后的时间。感兴趣的朋友可以了解一下
    2021-12-12
  • python中用ggplot绘制画图实例讲解

    python中用ggplot绘制画图实例讲解

    在本篇文章里小编给大家整理的是一篇关于python中用ggplot绘制画图实例讲解内容,有兴趣的朋友们可以学习参考下。
    2021-01-01
  • Pyinstaller打包多个资源文件的超详细教程(推荐!)

    Pyinstaller打包多个资源文件的超详细教程(推荐!)

    Pyinstaller是著名python打包module,软件或者小工具用python写好后,用pyinstaller 可以实现轻松打包,下面这篇文章主要给大家介绍了关于Pyinstaller打包多个资源文件的超详细教程,需要的朋友可以参考下
    2022-12-12
  • python3.10及以上版本编译安装ssl模块的详细过程

    python3.10及以上版本编译安装ssl模块的详细过程

    最近搞安装ssl模块每天都弄到很晚,所以这里给大家整理下,这篇文章主要给大家介绍了关于python3.10及以上版本编译安装ssl模块的详细过程,文中介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python全栈之学习HTML

    Python全栈之学习HTML

    这篇文章主要为大家介绍了Python全栈之HTML,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • selenium环境搭建及基本元素定位方式详解

    selenium环境搭建及基本元素定位方式详解

    selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法执行javaScript代码的问题,这篇文章主要介绍了selenium环境搭建及基本元素定位方式,需要的朋友可以参考下
    2023-04-04
  • 详解python解压压缩包的五种方法

    详解python解压压缩包的五种方法

    这里讨论下使用Python解压五种压缩文件,.gz .tar .tgz .zip .rar的相关知识,文中给大家介绍了python实现rar文件解压的方法,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • Python 实现图片转字符画的示例(静态图片,gif皆可)

    Python 实现图片转字符画的示例(静态图片,gif皆可)

    这篇文章主要介绍了Python 实现图片转字符画的示例,帮助大家更好的利用python进行图片处理,感兴趣的朋友可以了解下
    2020-11-11
  • Python结合MySQL数据库编写简单信息管理系统完整实例

    Python结合MySQL数据库编写简单信息管理系统完整实例

    最近Python课堂上布置了综合实训,实验目标是设计一个信息管理系统,下面这篇文章主要给大家介绍了关于Python结合MySQL数据库编写简单信息管理系统的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06

最新评论