【Python基础】Python中读取图片的6种方式
Python进行图片处理,第一步就是读取图片,这里给大家整理了6种图片的读取方式,并将读取的图片装换成numpy.ndarray()格式。首先需要准备一张照片,假如你有女朋友的话,可以用女朋友的,没有的话,那还学啥Python,赶紧找对象去吧!
一、OpenCV读取图片
OpenCV读取的图片,直接就是numpy.ndarray格式,无需转换
import cv2
img_cv = cv2.imread(dirpath)#读取数据
print("img_cv:",img_cv.shape)
img_cv: (1856, 2736, 3)
print("img_cv:",type(img_cv))
img_cv: <class 'numpy.ndarray'>
#看下读取的数据怎么样
img_cv
array([[[ 0, 3, 0],[ 11, 20, 17],...,[ 5, 23, 16]],[[ 0, 2, 0],...,[ 5, 23, 16]]]
二、PIL读取图片
PIL读取的图片并不是直接的numpy.ndarray格式,需要进行转换
from PIL import Image
import numpy as npimg_PIL = Image.open(dirpath)#读取数据print("img_PIL:",img_PIL)
img_PIL: <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=2736x1856 at 0x2202A8FC108>print("img_PIL:",type(img_PIL))
img_PIL: <class 'PIL.JpegImagePlugin.JpegImageFile'>#将图片转换成np.ndarray格式
img_PIL = np.array(img_PIL)
print("img_PIL:",img_PIL.shape)
img_PIL: (1856, 2736, 3)
print("img_PIL:",type(img_PIL))
img_PIL: <class 'numpy.ndarray
三、keras读取图片
keras深度学习的框架,里面也是内置了读取图片的模块,该模块读取的也不是数组格式,需要进行转换。
from keras.preprocessing.image import array_to_img, img_to_arrayload_imgimg_keras = load_img(dirpath)#读取数据print("img_keras:",img_keras)
img_keras: <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=2736x1856 at 0x2201D184BC8>print("img_keras:",type(img_keras))
img_keras: <class 'PIL.JpegImagePlugin.JpegImageFile'>#使用keras里的img_to_array()
img_keras = img_to_array(img_keras)
print("img_keras:",img_keras.shape)
img_keras: (1856, 2736, 3)
print("img_keras:",type(img_keras))
img_keras: <class 'numpy.ndarray'>#可以使用使用np.array()进行转换
mg_keras= np.array(img_keras)
四、skimage读取图片
scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,读取的数据正好是numpy.ndarray格式。
import skimage.io as io
img_io = io.imread(dirpath)#读取数据print("img_io :",img_io .shape)
img_io : (1856, 2736, 3)print("img_io :",type(img_io ))
img_io : <class 'numpy.ndarray'
五、matplotlib.image读取图片
利用matplotlib.image读取的图片,直接就生成了数组格式
import matplotlib.image as mpig
img_mpig = mpig.imread(dirpath)#读取数据print("img_mpig :",img_mpig .shape)
img_mpig : (1856, 2736, 3)print("img_mpig :",type(img_mpig ))
img_mpig : <class 'numpy.ndarray'
六、matplotlib.pyplot读取图片
利用matplotlib.pyplot读取的图片,同样也是直接就生成了数组格式
import matplotlib.pyplot as plt
img_plt = plt.imread(dirpath)
print("img_plt :",img_plt .shape)
img5: (1856, 2736, 3)
print("img_plt :",type(img_plt ))
img5: <class 'numpy.ndarray'>
七、显示读取的图片
同样,使用matplotlib 包可以打印出来读取的照片,要打印上述案例中读取的照片,只需要下面两行代码就行了。
plt.imshow(img_plt , cmap=plt.cm.binary)
plt.show()
图片三通道的,打印其中一个通道
plt.imshow(img_plt[:,:,1] , cmap=plt.cm.binary)
plt.show()
当然,我们可以随便构造一个数组,可以显示出来
digit = [[135,26,33,12],[14,27,43,190],[120,124,134,205]]
plt.imshow(digit, cmap=plt.cm.binary)
plt.show()
往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
获取一折本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/y7uvZF6
本站qq群704220115。
加入微信群请扫码:
【Python基础】Python中读取图片的6种方式相关推荐
- python导入图片数据_Python中读取图片的6种方式
Python进行图片处理,第一步就是读取图片,这里给大家整理了6种图片的读取方式,并将读取的图片装换成numpy.ndarray()格式.首先需要准备一张照片,假如你有女朋友的话,可以用女朋友的,没有 ...
- python中读取图片的6种方式
作者:小伍哥 来源:AI入门学习 python进行图片处理,第一步就是读取图片,这里给大家整理了6种图片的读取方式,并将读取的图片装换成numpy.ndarray()格式. 首先需要准备一张照片,假如 ...
- python读取多张图片_python读取图片的几种方式及图像宽和高的存储顺序
python读取图片的几种方式及图像宽和高的存储顺序 1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8 import cv2 import ...
- 图像处理五:python读取图片的几种方式
一.读取图片方式 PIL.opencv.scikit-image: (1)PIL和Pillow只提供最基础的数字图像处理,功能有限: (2)opencv实际上是一个c++库,只是提供了python接口 ...
- python读取图片的几种方式以及图像宽和高的存储顺序
1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8import cv2 import imageio from scipy import mi ...
- python读取图片的几种方式
opencv的像素值在[0,1][0,1],show的时候转换到[0,255] import cv2 img = cv2.imread("imgfile") cv2.imshow( ...
- Python自定义类中定义属性的两种方式
封面图片:<Python程序设计开发宝典>,ISBN:9787302472100,董付国,清华大学出版社 图书详情:https://item.jd.com/12143483.html 京东 ...
- iOS开发中拉伸图片的几种方式
在iOS开发中,经常会遇到控件尺寸和图片大小不匹配的情况. 一些情况下, 我们需要对图片进行拉伸, 以满足美观需求. 总的来说, 图片的拉伸方式可以分为两种, 一种是通过Xcode自带的Show Sl ...
- Java代码读取图片的两种方式
不废话在,直接上代码: 方式一: 适用场景: 图片size小 方式二: 适用场景: 图片size大 细节点: java 代码读取图片的方式,从这点入手: 关注我的博客
最新文章
- 阿里云ARMS重磅推出小程序监控,助力小程序稳定运行
- jdbc查询序列_JDBC –模拟序列
- redis linux中的安装
- vb 6.0 获取重定向的url_免费CloudFlare CDN真香,个人站点加速+Https证书+重定向
- iPad服务器怎样修复,如何修复iphone、ipad的Netflix错误11800
- 数据库考点之关系代数表达
- Windows常用快捷键和常用的cmd命令(亲测用了办公效率提升明显)
- @uncheck_jQuery Check / Uncheck复选框
- 抖音小程序Tiktok开发教程之 基础组件 01 text文本组件
- java程序设计概念对象先行_Java程序设计概念:对象先行(原书第8版)简介,目录书摘...
- 0基础学c语言txt下载,0基础学C语言.doc
- 读取佳能单反相机快门次数的方法
- mongoDB百度脑图总结
- 汽车众筹系统:加速建设汽车金融新生态!
- java kafka consumer不消费,报错marking the coordinator (id rack null) dead for group
- 数据库SQL语句 快速入门(一)
- 服务器2016安装系统教材,Windows Server 2016系统配置指南 完整pdf扫描版[155MB]
- Sanitize Device
- Android - 获取移动端设备ID标识,分情况
- taro + taro ui + dva 微信小程序实践
热门文章
- 威海高考2021成绩查询,2021年威海高考状元名单公布,威海高考状元学校资料及最高分...
- spring的控制反转和依赖注入讲解
- 淘宝sdk模板制作所需的部分资料(个人常用)
- 系统结构图:最大扇入、扇出数,深度和宽度的区别
- freenas 当网站服务器,win10系统下如何安装FreeNAS来设置文件服务器
- Java编程高级教程,这些数据库索引的高频面试题,你都掌握了多少
- 组织行为学学习笔记2:情绪和心境
- vuex 源码分析_深入Vuex原理(上)
- js中复选框checkbox如何判定为被选中
- arcgis/core学习实践(二)