python3读取图像并可视化的方法(PIL/Pillow、opencv/cv2)
原图:

使用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)的更多相关文章
- Halcon一日一练:读取文件目录图像的三种方法
第一种方法: 读了一个单一图像: read_image(Image,'fabrik') 这种方式可以快速的读取软件自身携带的库图像文件,系统设定了库图像映像文件的快速读取方式,我们也可以通过绝对地址的 ...
- 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,发现 ...
- [译]Android调整图像大小的一些方法
翻译自 某大神在Stack Overflow里的自问自答 (一般我们将Bitmap翻译为位图,但为了更好理解,在本文中我将它翻译成图像): 我们在开发的时候,经常需要从服务器中加载图像到客户端中,但有 ...
- OpenCV2+入门系列(三):遍历图像的几种方法
根据OpenCV中Mat类型的结构和内存中存储方式,此处给出三种对图像进行遍历的方法.首先给出基础的读取图片代码,在中间替换三种遍历方法即可,本文中,程序将遍历图像并将所有像素点置为255,所有运行结 ...
- Exif.js 读取图像的元数据
Exif.js 提供了 JavaScript 读取图像的原始数据的功能扩展,例如:拍照方向.相机设备型号.拍摄时间.ISO 感光度.GPS 地理位置等数据. 注意事项: EXIF 数据主要来自拍摄的照 ...
- GDAL库——读取图像并提取基本信息
GDAL库是一个跨平台的栅格地理数据格式库,包括读取.写入.转换.处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持).它使用了一个单一的抽象数据模型就支持了大多数的栅格数据.这里有GDAL ...
- python3读取MySQL-Front的MYSQL密码
python3读取MySQL-Front的MYSQL密码 python3 mysql 密码 MySQL-Front 前言 同样的套路又来了,继续尝试从配置文件中读取敏感的信息,这次轮到的是MySQL- ...
- sklearn中树模型可视化的方法
在机器学习的过程中,我们常常会用到树模型的方式来解决我们的问题.在工业界,我们不仅要针对某个问题利用机器学习的方法来解决问题,而且还需要能力解释其中的原理或原因.今天主要在这里记录一下树模型是怎么做可 ...
- 第十二节,TensorFlow读取数据的几种方法以及队列的使用
TensorFlow程序读取数据一共有3种方法: 供给数据(Feeding): 在TensorFlow程序运行的每一步, 让Python代码来供给数据. 从文件读取数据: 在TensorFlow图的起 ...
随机推荐
- 个性的圆角.html
- 开发者应该掌握 WebSocekt 协议的知识
文章介绍 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,它的出现使客户端和服务器之间的数据交换变得更加简单.WebSocket 通常被应用在实时性要求较高的场景,例如赛事数据. ...
- [开源] .Net 使用 ORM 访问 达梦数据库
前言 武汉达梦数据库有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发.销售与服务,同时可为用户提供大数据平台架构咨询.数据技术方案规划.产品部署 ...
- openstack网络(二)
连接物理服务器 单网卡 多网卡 跨主机安装网络服务 使用单个控制节点安装 使用专用网络节点安装 连接物理服务器 每个物理主机所需的网卡数量取决于云平台使用领域,组织的安全性和性能要求以及硬件的可用性. ...
- 移动开发在路上-- IOS移动开发系列 多线程二
最近太忙没太多的时间,忙碌的码农生活空下来一点时间,都会挤出来看一些技术或者咨询的文章,废话不多说,直奔主题. 接着上一次的继续说. 定时器在多线程的使用 NSRunLoop 是线程相关的基础框架的一 ...
- Balls in the Boxes
Description Mr. Mindless has many balls and many boxes,he wants to put all the balls into some of th ...
- C.Dominated Subarray
题目:受主导的子序列 题意:序列t至少有2个元素,我们称序列t被数字出现次数最多的元素v主导,且出现次数最多的元素必须是唯一的 你被给予了序列a1, a2, ..., an,计算它的最短受主导子序列, ...
- Python实现截图功能你肯定不会吧?【面试必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:CyborgLin python实现截图功能. windows环境下.需 ...
- Python学习心得体会总结,不要采坑
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:樱桃小丸子0093 大家要持续关注哦,不定时更新Python知识 ...
- 【JS】374- 重学 this 关键字
为什么要学习this关键字 1. 面试会问啊!总有一些面试官喜欢问你一段不可能这么写的代码.看一道经典且古老的面试题(学完本文后,文末会有一道更复杂的面试题等着你哦!) 代码如下: let a = 5 ...