python怎样读取文件夹里的图片_python图片处理及识别

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

python怎样读取文件夹里的图片_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 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()

       python怎样读取文件夹里的图片_python图片处理及识别       

图片三通道的,打印其中一个通道

plt.imshow(img_plt[:,:,1] , cmap=plt.cm.binary)

plt.show()       python怎样读取文件夹里的图片_python图片处理及识别 

当然,我们可以随便构造一个数组,可以显示出来

digit  =  [[135,26,33,12],[14,27,43,190],[120,124,134,205]]

plt.imshow(digit, cmap=plt.cm.binary)

plt.show()

python怎样读取文件夹里的图片_python图片处理及识别

python怎样读取文件夹里的图片_python图片处理及识别

往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑

获取一折本站知识星球优惠券,复制链接直接打开:

https://t.zsxq.com/y7uvZF6

本站qq群704220115。

加入微信群请扫码:

python怎样读取文件夹里的图片_python图片处理及识别

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194650.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python进制转换与ASCII转换

    Python进制转换与ASCII转换本文结合实际应用和刷Leetcode总结了Python的一些常用的方法一、字符串二、列表三、字典其他input()用于获取用户的输入值,返回一个字符串类型例:msg=input(‘请输入值’)…

    2022年5月19日
    42
  • vscode怎么直接运行html_vscode怎么创建项目

    vscode怎么直接运行html_vscode怎么创建项目首先新建一个html文件,取名后缀为XXX.html,如图建好文件之后是空的,然后输入!同时按下tab键就自动生成html目录了目录建好后怎么运行呢?打开扩展商店,输出op就出来了,选择第一个openinbrowser安装安装好了之后就可以运行啦,快捷键是alt+b,当然也可以在项html文件中点击鼠标右键来运行,如图然后选择浏览器来运行,推荐最好选择谷歌,运行效果如下最后有人问,这个中文是怎么设置的?也是在应用商店里面搜索language然后选择中文的下载然后重新启动VSCo

    2022年8月22日
    5
  • vue双向绑定失效_vue热更新失效

    vue双向绑定失效_vue热更新失效为什么会失效呢首先vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的实现方式是get和set方法然后是通过Object.defineProperty()来实现数据劫持的。然后呢要是,实现数据的双向绑定,首先要对数据进行劫持监听,因为写的代码没有被监听到,所以只能手动setthis.$set(obj,key,value)查找的资料:1.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者。2.实现一个订阅者Watche..

    2022年9月14日
    2
  • beanutils.copyproperties 深拷贝_properties线程安全吗

    beanutils.copyproperties 深拷贝_properties线程安全吗一BeanUtils.copyProperties是什么BeanUtils类全路径为org.springframework.beans.BeanUtils是spring-beans包下的一个用于bean相关工具类。BeanUtils.copyProperties(Objectsource,Objecttarget)这个方法的作用是把source这个bean的全部属性值复制到targe…

    2022年10月3日
    3
  • Oracle触发器写法和举例[通俗易懂]

    Oracle触发器写法和举例[通俗易懂]1、declare声明变量后的每个变量都要加分号;2、所有的语句结束和sql语句结尾,都要加分号;3、变量赋值variable:=’1234’如:recordId:=’1234′;4、插入列数据获取:new.colname如:new.exec_record_id5、sql查询写入变量selectcolnameintovariable如:sel…

    2022年7月15日
    11
  • 分布式事务、cloud、boot、常规队列MQ、elk、kafuka

    分布式事务、cloud、boot、常规队列MQ、elk、kafuka点击链接》》》这个博客里面的专栏。apache-jmeter-3.3的简单压力测试使用方法https://www.cnblogs.com/ios9/p/7644951.html#_label3 

    2022年5月15日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号