作者:小伍哥

来源:AI入门学习

python进行图片处理,第一步就是读取图片,这里给大家整理了6种图片的读取方式,并将读取的图片装换成numpy.ndarray()格式。

首先需要准备一张照片,假如你有女朋友的话,可以用女朋友的,没有的话,那还学啥python,赶紧找对象去吧!

图片路径:dirpath = "C:/Users/wuzhengxiang/Desktop/beatgirl.jpg"

一、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 np
img_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_array
load_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()

python中读取图片的6种方式相关推荐

  1. 【Python基础】Python中读取图片的6种方式

    Python进行图片处理,第一步就是读取图片,这里给大家整理了6种图片的读取方式,并将读取的图片装换成numpy.ndarray()格式.首先需要准备一张照片,假如你有女朋友的话,可以用女朋友的,没有 ...

  2. python导入图片数据_Python中读取图片的6种方式

    Python进行图片处理,第一步就是读取图片,这里给大家整理了6种图片的读取方式,并将读取的图片装换成numpy.ndarray()格式.首先需要准备一张照片,假如你有女朋友的话,可以用女朋友的,没有 ...

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

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

  4. python中调用API的几种方式

    python中调用API的几种方式: urllib2 httplib2 pycurl requests urllib2 import urllib2, urllib github_url ='http ...

  5. 图像处理五:python读取图片的几种方式

    一.读取图片方式 PIL.opencv.scikit-image: (1)PIL和Pillow只提供最基础的数字图像处理,功能有限: (2)opencv实际上是一个c++库,只是提供了python接口 ...

  6. python读取图片的几种方式以及图像宽和高的存储顺序

    1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8import cv2 import imageio from scipy import mi ...

  7. python读取图片的几种方式

    opencv的像素值在[0,1][0,1],show的时候转换到[0,255] import cv2 img = cv2.imread("imgfile") cv2.imshow( ...

  8. python中cmd全称_【转】Python中执行cmd的三种方式

    原文链接:http://blog.csdn.net/menglei8625/article/details/7494094 目前我使用到的python中执行cmd的方式有三种: 1. 使用os.sys ...

  9. python 保留两位小数 占位_第17p,Python中格式化输出的3种方式

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第17篇文章,第二阶段的课程:Python基础知识:格式化输出的3种方式 学习本课程,建议先看一遍:[计算机基础知识]课程. 格式化 ...

最新文章

  1. Ti公司DSP的DSK、EVM、DDK的区别
  2. linux mint 下载迅雷安装包,linux mint 最新版本下载地址
  3. 阿里云面试官:如果是MySQL引起的CPU消耗过大,你会如何优化?
  4. jenkins关闭和重启
  5. linux中grep的例子,Linux下grep命令使用实例
  6. WEB应用中的信息泄漏以及攻击方法
  7. mysql left join_对比MySQL,教你在Pandas中实现SQL常用操作!
  8. 互动快报读报软件159份全国主流大报倾情奉献读者
  9. android 测量距离 app,手机测距软件哪个好?6款手机测距APP推荐
  10. Android studio 中文语言包安装
  11. 中等计算机的配置,中等特效的电脑主机配置推荐
  12. 实验改变人类:震撼世界的十大科学实验- -
  13. 哪里有英语,哪里有欢乐
  14. 网吧服务器点歌系统,网吧点歌系统_网吧语音大师_蓝宝石语音_网吧点歌系统_蓝宝石呼叫网管_hylbs.com...
  15. 外国客户一般汇款到国内需要多久时间?
  16. discuz发帖流程_Discuz论坛发帖能力分享
  17. 在微信小程序中如何使用wx.onLocationChange(function callback)
  18. stm32 薄膜键盘原理_stm32 diy 机械键盘
  19. java缩印_word文档如何缩印:如何使用记事本编写java程序
  20. 处理音视频合并的简单方法

热门文章

  1. 计算机管理学派著作,系统管理学派
  2. mysql主键为什么要自增_MySQL表为什么要有自增主键
  3. myeclipse java教程_Java之Myeclipse使用详细教程
  4. 【JAVA项目实战】【图书管理系统】书籍管理功能【Servlet】+【JSP】+【MySql】+【Ajax】
  5. Jenkins详细安装配置部署
  6. js获取当前域名、Url、相对路径和参数
  7. PTAN实战1 || 安装与使用
  8. iOS 股票K线图绘制
  9. java试题下载_Java基础笔试100道考试题 TXT版
  10. httpie 101