读取图片函数:

cv2.imread()

Image.open()

注意:Image.open()函数只是保持了图像被读取的状态,但是图像的真实数据并未被读取,因此如果对需要操作图像每个元素,如输出某个像素的RGB值等,需要执行对象的load()方法读取数据

Image.open()读取的通道顺序是RGB,cv2.imread()读取的通道顺序为BGR。

PIL函数读取图片的时候,结合np.array()使用。

注意:

PIL.Image.save()直接保存RGB的图片

cv2.imwirte()保存图片的时候相当于做了BGR2RGB再去保存

显示的区别

cv2.imshow()采用BGR模式

plt.imshow() 采用RGB模式

img.show() 采用RGB模式

PIL.Image转Opencv

cv2_img = cv2.cvtColor(numpy.asarray(Img_img),cv2.COLOR_RGB2BGR)

Opencv转PIL.Image

pil_img = Image.fromarray(cv2.cvtColor(cv_img,cv2.COLOR_BGR2RGB))

有人做实验发现:PIL读取出来的图片转为numpy格式和直接使用cv读取的图片在像素点上并不是完全一致。

除了上述两种读取图片的方式以外,python还支持以下方式读取图片:

(1)from matplotlib.image import imread

img = imread(img_path) # 返回 ndarray

(2)from http://skimage.io import imread

img = imread(file_path) # 返回的是 ndarray

pil获得图片_OpenCV读取图片与PIL读取图片的差别相关推荐

  1. 图片二:matplotlib、PIL、CV2操作图片

    处理图像的方式有三种方式,分别使用PIL, matplotlib, CV2库 1.matplotlib读取和保存图片: 读取通道顺序:RGB 数据类型:numpy.ndarray 数据类型:对于png ...

  2. python显示图片的方式(OpenCV,PIL,matplotlib)

    这一篇博客介绍几个python处理图像的常见库,介绍基础的存取和显示,旨在帮助大家更好的选择合适的库进行图像处理,或者结合pytorch等深度学习框架进行图像的读取与显示 1.OpenCV OpenC ...

  3. PIL实现两张图片合成一张,和图片加文字

    PIL实现两张图片合成一张,和图片加文字 文章目录: 一.PIL实现两张图片合成一张 1.方法一: 2.方法二 二.图片添加文字 首先说明一下: (小姐姐是谁,是my sweetheart ,请勿使用 ...

  4. Python OpenCV _1基本操作(画图,循环播放图像,鼠标事件,读取中文路径中的图片)

    此系列源码在我的GitHub里:https://github.com/yeyujujishou19/Python-OpenCV 一,OpenCV的结构 A)根据功能和需求的不同,OpenCV中的函数接 ...

  5. OpenCV读取文件夹下的图片生成视频(mp4格式)

    定义目录 file = 'C:/Users/jmWang/Desktop/sample_data/GSM/' # 图片目录 output = 'C:/Users/jmWang/Desktop/1.mp ...

  6. Python读取zip文件中的图片(无需解压)

    对于包含大量图片的大型zip文件而言,解压非常费时间,同时解压过程也会需要更大的硬盘空间.这个时候,如果Python能直接读取到zip中的图片的话,就非常有用了. 本文提供PIL和cv2两种格式的图片 ...

  7. python读取多张图片_python读取图片的几种方式及图像宽和高的存储顺序

    python读取图片的几种方式及图像宽和高的存储顺序 1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8 import cv2 import ...

  8. 利用opencv读取图片将其作为opengl的纹理图片的实现方法

    在opengl中实现三维物体的纹理贴图的第一步就是要读入图片,然后指定该图片为纹理图片.我最早接手的项目中是通过一个专门的读取bmp图片的函数来实现纹理图片的读取的.这个函数有三个缺点: 1.只能读取 ...

  9. java oracle 图片_JAVA读取Oracle中的blob图片字段并显示

    JAVA读取Oracle中的blob图片字段并显示 近期,在给客户做一个Demo页面时,需要用JAVA读取Oracle中的blob图片字段并显示,在此过程中,遇到一些问题,例如:连接Oracle数据库 ...

最新文章

  1. 垃圾清理代码_最近弄了个清理电脑C盘的经验
  2. Linux-鸟菜-1-Linux简介
  3. 031_jQuery Ajax的post方法
  4. msf生成linux shellcode,MSF-Shellcode生成和使用
  5. 11.reindex操作
  6. 程序如何在两个gpu卡上并行运行_深度学习分布式训练相关介绍 - Part 1 多GPU训练...
  7. github 上传代码_leetcode爬虫:爬取代码;生成readme;上传github
  8. 删除下拉框只找23火星软件_下拉推广选择23火星软件
  9. matlab信号系统响应实验,信号与系统实验(MATLAB版) (1)
  10. DOS常用命令(和Linux对比)
  11. 自制QQ机器人插件笔记[nonebot2部署于ubuntu系统服务器]
  12. 安装VS2008 SP1
  13. Waymo上线11万美元挑战赛,福特开放1.6TB自动驾驶数据
  14. 基于ArcScene简单实验操作
  15. Windows10下使用Conda安装TensorFlow-GPU
  16. 一个问题的暴漏有多难? 过五关!!!
  17. 在桌面上显示当前的IP地址和电脑名称
  18. 苹果电脑装win7系统问题
  19. 苹果手机没有备份怎么恢复照片?
  20. iar msp430 编译文件提示非法的license错误

热门文章

  1. 白牌交换机有什么特点?与传统换机相比有什么特别之处?
  2. flask(一)之路由和视图
  3. nginx 配置两个域名
  4. 学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)
  5. linux下的cat命令
  6. 打造自己的数据访问层(二)
  7. Linux系统查看分区文件系统类型
  8. 调用方法[manageapp]时发生异常_探讨通过Feign配合Hystrix进行调用时异常的处理
  9. java 面试 框架_这份java集合框架面试题,轻松搞定面试官!
  10. php 变量输入,PHP-输入变量