0.

1.参考

http://pszpcl.baike.com/article-77327.html
windows 图片右键:属性 详细信息 位深度
位深度 用于指定图像中的每个像素可以使用的颜色信息数量。
    位深度为 1 的图像的像素有两个可能的值:黑色和白色。
    位深度为 8 的灰度模式图像有 256 个可能的灰色值。
    RGB 图像由三个颜色通道组成。8 位/像素的 RGB 图像中的每个通道有 256 个可能的值,这意味着该图像有 1600 万个以上可能的颜色值。
    有时将带有 8 位/通道 (bpc) 的 RGB 图像称作 24 位图像(8 位 x 3 通道 = 24 位数据/像素)。

2.结论:

载入黑白图片也可能是0/1二值

保存黑白图片优选 gif,自动转为0/1二值,且windows下显示正常。

3. 载入图片后的探索

  1. #载入黑白图
  2. In [82]: img.mode
  3. Out[82]: 'P'
  4. In [114]: img.getbands()
  5. Out[114]: ('P',)
  6. In [83]: img.getcolors()
  7. Out[83]: [(1048, 0), (102, 1)]
  8. In [84]: print list(img.getdata())[:10]
  9. [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
  10. In [90]: set(img.getdata())
  11. Out[90]: {0, 1}
  12.  
  13. #载入彩色图
  14. In [103]: imgc.mode
  15. Out[103]: 'RGBA'
  16. In [100]: imgc.getbands()
  17. Out[100]: ('R', 'G', 'B', 'A')
  18. In [106]: imgc.getcolors()
  19. Out[106]:
  20. [(34, (255, 255, 255, 255)),
  21. (11, (250, 215, 245, 255)),
  22. In [112]: list(imgc.getdata())
  23. Out[112]:
  24. [(244, 245, 245, 255),
  25. (245, 245, 245, 255),

4. 保存二值黑白图片要区分 gif / png

  1. In [176]: img=Image.open('split_image/61234.png')
  2. In [177]: img.show()
  3.  
  4. In [178]: img.getcolors() #注意原图 0/1 足以显示为黑白图像
  5. Out[178]: [(1048, 0), (102, 1)]
  6.  
  7. In [179]: gray = img.convert('L')
  8. In [180]: gray_array = np.array(gray)
  9. In [181]: Image.fromarray(gray_array).show()
  10. In [182]: gray_array
  11. Out[182]:
  12. array([[249, 249, 249, ..., 249, 249, 249],
  13. [249, 249, 249, ..., 249, 249, 249],
  14. [249, 249, 249, ..., 249, 249, 249],
  15. ...,
  16. [249, 249, 249, ..., 249, 249, 249],
  17. [249, 249, 249, ..., 249, 249, 249],
  18. [249, 249, 249, ..., 249, 249, 249]], dtype=uint8)
  19.  
  20. In [183]: bilevel = Image.fromarray(np.where(gray_array<100,0,200))
  21. In [184]: bilevel.getcolors()
  22. Out[184]: [(1048, 200), (102, 0)]
  23.  
  24. In [185]: bilevel.save('png.png')
  25. In [186]: bilevel.save('gif.gif')
  26.  
  27. In [187]: Image.open('png.png').getcolors() #png灰度值得以保留
  28. Out[187]: [(1048, 200), (102, 0)]
  29.  
  30. In [188]: Image.open('gif.gif').getcolors() #gif只剩0/1
  31. Out[188]: [(102, 0), (1048, 1)]

原图png

PIL处理后保存的gif:

PIL处理后保存的png,在windows中也显示为黑图,PIL show显示正常:

d

python之PIL 二值图像处理和保存的更多相关文章

  1. Python 获取 exe 的 icon 并且保存

    Python 获取 exe 的 icon 并且保存 参考链接:https://mail.python.org/pipermail/python-win32/2009-April/009078.html ...

  2. Python:PIL(三)——Image

    学习自:PIL官方文档--Image (2条消息) Python图像处理PIL各模块详细介绍_章子雎的博客-CSDN博客 一.Image模块 1.open 用法 open(fp,mode='r',fo ...

  3. 关于python中PIL的安装

    python 的PIL安装是一件很蛋痛的事, 如果你要在python 中使用图型程序那怕只是将个图片从二进制流中存盘(例如使用Scrapy 爬网存图),那么都会使用到 PIL 这库,而这个库是出名的难 ...

  4. 使用Python的PIL模块来进行图片对比

    使用Python的PIL模块来进行图片对比 在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, ...

  5. python日志按天分割,保存近一个月日志,日志自动清理

    python日志按天分割,保存近一个月日志 import os import logging import re from logging.handlers import TimedRotatingF ...

  6. 使用Python中PIL图形库进行截屏

    目的:通过使用Python的一个图形库PIL(Python Image Library)对屏幕进行截图 步骤: 1.下载PIL(路径)并安装 2.新建文件“截屏.py”,右键Edit with IDL ...

  7. python+xlsxwriter+PIL自动压图贴图到Excel小工具

    一.环境 windows10/mac + python3.6 python第三方库 xlsxwriter.PIL.argparse 二.需求 1.运行每条测试case成功与否都需要把截图放在img文件 ...

  8. Python+Selenium+PIL+Tesseract真正自动识别验证码进行一键登录

    Python 2.7 IDE Pycharm 5.0.3 Selenium:Selenium的介绍及使用,强烈推荐@ Eastmount的博客 PIL : Pillow-3.3.0-cp27-cp27 ...

  9. 一秒钟带你走进P图世界-----(python)PIL库的使用

    python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...

随机推荐

  1. 【转】Java并发编程:并发容器之CopyOnWriteArrayList

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改, ...

  2. Laravel 5.2--如何让表单提交错误,不清空?

    控制器 public function store(Request $request) { $validator = Validator::make($request->all(), [ 'Su ...

  3. 用C#开发基于自动化接口的OPC客户端

    OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁.OPC作为一 ...

  4. Confluence 6 数据库表-展现(Appearance)

    这部分存储了有关你 Confluence 的外观和布局使用的信息. decorator 使用自定义 Velocity 布局显示的自定义模板. https://www.cwiki.us/display/ ...

  5. nginx官方模块之http_sub_module

    作用 http内容替换 语法 示例 html代码与结果如下:

  6. JavaScript利用键盘方向键(上下键)控制表格行选中

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. 【python】升级pip后报错解决pkg_resources.DistributionNotFound: The 'pip==7.1.0' distribution was not found and is required by the application

    原本使用pip版本为7.1.0,后升级至9.0.1 之后使用pip list提示pkg_resources.DistributionNotFound: The 'pip==7.1.0' distrib ...

  8. 《剑指offer》从尾到头打印链表

    本题来自<剑指offer> 从尾到头打印链表 题目: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 思路: 方案一:首先遍历到尾部,然后从尾部进行到头值进行操作,后进先 ...

  9. 2017-2018-2 20165314实验二《Java面向对象程序设计》实验报告

    实验报告封面 实验一 实验要求 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成单元测试的学习提交最后三个JUnit测试用例 ...

  10. (转)CSS3之pointer-events(屏蔽鼠标事件)属性说明

    我们在 HTML 开发时可能会遇到这样的情况:页面上有一些元素使用绝对定位布局,这些元素可能会遮盖住它们位置下方的某个元素的部分或者全部.默认情况下,下方元素被遮挡的部分是不会响应鼠标事件的. 但有时 ...