pil获得图片_OpenCV读取图片与PIL读取图片的差别
读取图片函数:
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读取图片的差别相关推荐
- 图片二:matplotlib、PIL、CV2操作图片
处理图像的方式有三种方式,分别使用PIL, matplotlib, CV2库 1.matplotlib读取和保存图片: 读取通道顺序:RGB 数据类型:numpy.ndarray 数据类型:对于png ...
- python显示图片的方式(OpenCV,PIL,matplotlib)
这一篇博客介绍几个python处理图像的常见库,介绍基础的存取和显示,旨在帮助大家更好的选择合适的库进行图像处理,或者结合pytorch等深度学习框架进行图像的读取与显示 1.OpenCV OpenC ...
- PIL实现两张图片合成一张,和图片加文字
PIL实现两张图片合成一张,和图片加文字 文章目录: 一.PIL实现两张图片合成一张 1.方法一: 2.方法二 二.图片添加文字 首先说明一下: (小姐姐是谁,是my sweetheart ,请勿使用 ...
- Python OpenCV _1基本操作(画图,循环播放图像,鼠标事件,读取中文路径中的图片)
此系列源码在我的GitHub里:https://github.com/yeyujujishou19/Python-OpenCV 一,OpenCV的结构 A)根据功能和需求的不同,OpenCV中的函数接 ...
- OpenCV读取文件夹下的图片生成视频(mp4格式)
定义目录 file = 'C:/Users/jmWang/Desktop/sample_data/GSM/' # 图片目录 output = 'C:/Users/jmWang/Desktop/1.mp ...
- Python读取zip文件中的图片(无需解压)
对于包含大量图片的大型zip文件而言,解压非常费时间,同时解压过程也会需要更大的硬盘空间.这个时候,如果Python能直接读取到zip中的图片的话,就非常有用了. 本文提供PIL和cv2两种格式的图片 ...
- python读取多张图片_python读取图片的几种方式及图像宽和高的存储顺序
python读取图片的几种方式及图像宽和高的存储顺序 1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8 import cv2 import ...
- 利用opencv读取图片将其作为opengl的纹理图片的实现方法
在opengl中实现三维物体的纹理贴图的第一步就是要读入图片,然后指定该图片为纹理图片.我最早接手的项目中是通过一个专门的读取bmp图片的函数来实现纹理图片的读取的.这个函数有三个缺点: 1.只能读取 ...
- java oracle 图片_JAVA读取Oracle中的blob图片字段并显示
JAVA读取Oracle中的blob图片字段并显示 近期,在给客户做一个Demo页面时,需要用JAVA读取Oracle中的blob图片字段并显示,在此过程中,遇到一些问题,例如:连接Oracle数据库 ...
最新文章
- 垃圾清理代码_最近弄了个清理电脑C盘的经验
- Linux-鸟菜-1-Linux简介
- 031_jQuery Ajax的post方法
- msf生成linux shellcode,MSF-Shellcode生成和使用
- 11.reindex操作
- 程序如何在两个gpu卡上并行运行_深度学习分布式训练相关介绍 - Part 1 多GPU训练...
- github 上传代码_leetcode爬虫:爬取代码;生成readme;上传github
- 删除下拉框只找23火星软件_下拉推广选择23火星软件
- matlab信号系统响应实验,信号与系统实验(MATLAB版) (1)
- DOS常用命令(和Linux对比)
- 自制QQ机器人插件笔记[nonebot2部署于ubuntu系统服务器]
- 安装VS2008 SP1
- Waymo上线11万美元挑战赛,福特开放1.6TB自动驾驶数据
- 基于ArcScene简单实验操作
- Windows10下使用Conda安装TensorFlow-GPU
- 一个问题的暴漏有多难? 过五关!!!
- 在桌面上显示当前的IP地址和电脑名称
- 苹果电脑装win7系统问题
- 苹果手机没有备份怎么恢复照片?
- iar msp430 编译文件提示非法的license错误