原图:

使用TensorFlow做图像处理的时候,会对图像进行一些可视化的操作。下面,就来列举一些我知道的图像读取并可视化的方法。

1. Pillow模块

1.1 Pillow模块的前生

Pillow就是python2中的 PIL 模块。PIL模块(Python Imaging Library)是Python的一个强大方便的图像处理库,不过只支持到 Python2.7。

Pillow是PIL的一个派生分支,但如今已发展为比PIL本身更具活力的Python图像处理库。

1.2 Pillow模块的安装

pillow的安装也分两种,第一种通过 CMD命令行模式直接 pip。不过我在安装的时候出了错,大概是网络原因。于是我用pycharm直接进行安装,没有出现问题

CMD安装命令:pip install Pillow

1.3 使用Pillow模块进行可视化

1.3.1 导入Pillow模块:

import PIL
或者
from PIL import Image

如果写 import Pillow 就会报错“ModuleNotFoundError: No module named 'Pillow'”,这可能是因为Pillow是从PIL派生出来的原因吧。

1.3.2 Image.open(img_path).convert()

convert()
convert()是图像实例对象的一个方法,接受一个 mode 参数,用以指定一种色彩模式
1 ------------------(1位像素,黑白,每字节一个像素存储)
L ------------------(8位像素,黑白)
P ------------------(8位像素,使用调色板映射到任何其他模式)
RGB------------------(3x8位像素,真彩色)
RGBA------------------(4x8位像素,带透明度掩模的真彩色)
CMYK--------------------(4x8位像素,分色)
YCbCr--------------------(3x8位像素,彩色视频格式)
I-----------------------(32位有符号整数像素)
F------------------------(32位浮点像素)

1.3.3 代码,直接105, 106两行代码就够了:

效果:

默认用画图工具打开。

如果将convert() 参数改为 '1',效果如下:

剩下的参数不再一一使用。

2. cv2模块读取图像,matplotlib可视化展示

2.1 cv2模块的安装

pip install opencv-python

如果无法安装或安装后出现问题,可以试试pycharm或在官网下载安装包进行手动安装。

2.2 matplotlib为Python自带,无需安装

2.3 代码:

结果如下:

图像为什么跟原始图像的色彩不一样,或者说像是颜色被翻转了似的,因为cv2与matplotlib的显示模式不一致,opencv读取的彩色图像是BGR格式,Matplotlib显示彩色图像是RGB格式。

python3读取图像并可视化的方法(PIL/Pillow、opencv/cv2)的更多相关文章

  1. Halcon一日一练:读取文件目录图像的三种方法

    第一种方法: 读了一个单一图像: read_image(Image,'fabrik') 这种方式可以快速的读取软件自身携带的库图像文件,系统设定了库图像映像文件的快速读取方式,我们也可以通过绝对地址的 ...

  2. OpenCV读取图像问题:OpenCV(3.4.3) D:\Build\OpenCV\opencv-size.width0 && size.height0 in function 'cvimshow'

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/83280067 - 问题与解决 最近正在学OpenCV,发现 ...

  3. [译]Android调整图像大小的一些方法

    翻译自 某大神在Stack Overflow里的自问自答 (一般我们将Bitmap翻译为位图,但为了更好理解,在本文中我将它翻译成图像): 我们在开发的时候,经常需要从服务器中加载图像到客户端中,但有 ...

  4. OpenCV2+入门系列(三):遍历图像的几种方法

    根据OpenCV中Mat类型的结构和内存中存储方式,此处给出三种对图像进行遍历的方法.首先给出基础的读取图片代码,在中间替换三种遍历方法即可,本文中,程序将遍历图像并将所有像素点置为255,所有运行结 ...

  5. Exif.js 读取图像的元数据

    Exif.js 提供了 JavaScript 读取图像的原始数据的功能扩展,例如:拍照方向.相机设备型号.拍摄时间.ISO 感光度.GPS 地理位置等数据. 注意事项: EXIF 数据主要来自拍摄的照 ...

  6. GDAL库——读取图像并提取基本信息

    GDAL库是一个跨平台的栅格地理数据格式库,包括读取.写入.转换.处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持).它使用了一个单一的抽象数据模型就支持了大多数的栅格数据.这里有GDAL ...

  7. python3读取MySQL-Front的MYSQL密码

    python3读取MySQL-Front的MYSQL密码 python3 mysql 密码 MySQL-Front 前言 同样的套路又来了,继续尝试从配置文件中读取敏感的信息,这次轮到的是MySQL- ...

  8. sklearn中树模型可视化的方法

    在机器学习的过程中,我们常常会用到树模型的方式来解决我们的问题.在工业界,我们不仅要针对某个问题利用机器学习的方法来解决问题,而且还需要能力解释其中的原理或原因.今天主要在这里记录一下树模型是怎么做可 ...

  9. 第十二节,TensorFlow读取数据的几种方法以及队列的使用

    TensorFlow程序读取数据一共有3种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起 ...

随机推荐

  1. 全面认识 RUST -- 掌控未来的雷电

    文章目录 RUST 简介 如何衡量语言的好坏? 静态语言 编译器 语言定位 代表性项目 Hello World RUST 前景 RUST 简介 Rust 是一种兼顾内存安全.高并发和稳定运行的编程语言 ...

  2. Python如何爬取实时变化的WebSocket数据

    一.前言 作为一名爬虫工程师,在工作中常常会遇到爬取实时数据的需求,比如体育赛事实时数据.股市实时数据或币圈实时变化的数据.如下图: Web 领域中,用于实现数据'实时'更新的手段有轮询和 WebSo ...

  3. [Abp vNext 源码分析] - 13. 本地事件总线与分布式事件总线 (Rabbit MQ)

    一.简要介绍 ABP vNext 封装了两种事件总线结构,第一种是 ABP vNext 自己实现的本地事件总线,这种事件总线无法跨项目发布和订阅.第二种则是分布式事件总线,ABP vNext 自己封装 ...

  4. 使用python实现http服务器

    主要使用python实现了一个http服务器.http服务器实现了用户的注册和登录的简单功能,当然还可以继续扩展. 数据的存储使用的是文件,有兴趣的话可以使用数据库进行存储.当然根据个人兴趣而定. 本 ...

  5. 学习go语言第二天-变量、常量

    编写测试程序 源码文件以_test结尾;例如:xxx_test.go 测试方法名以Test开头;例如:func TestXXXXX(t *testing.T){} 实现斐波那且数列 package f ...

  6. 2019 ICPC上海网络赛 A 题 Lightning Routing I (动态维护树的直径)

    题目: 给定一棵树, 带边权. 现在有2种操作: 1.修改第i条边的权值. 2.询问u到其他一个任意点的最大距离是多少. 题解: 树的直径可以通过两次 dfs() 的方法求得.换句话说,到任意点最远的 ...

  7. ARTS-S golang单元测试

    golang单元测试 在$GOPATH的src目录下建目录demo_unittest 在目录demo_unittest下建文件calc.go,内容如下: package demo_unittest f ...

  8. VS编译命令

    一.前言 由于公司要求项目需要走CI构建平台,抛弃掉之前的人工编译打包方式,所以需要调研一下项目怎么通过命令行编译出产物. 二.准备工作 在构建机器上安装vs(本文示例为vs2017) 将代码上传版本 ...

  9. CSS-sprite(雪碧图、精灵图)

    Css Sprite(优点) 减少图片的字节. 减少网页的http请求,从而大大的提高页面的性能. 解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名 ...

  10. 你不会还在用这8个错误的SQL写法吧?

    1.LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方.比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引 ...