python读取图像的几种方法_python图像识别教程

python读取图像的几种方法_python图像识别教程python读取图像的几种方式本文介绍几种基于python的图像读取方式:基于PIL库的图像读取、保存和显示基于opencv-python的图像读取、保存和显示基于matplotlib的图像读取、保存和显示基于scikit-image的图像读取、保存和显示基于imageio的图像读取、保存和显示安装方式基本使用pip即可:pipinstallpillowpipinstallscikit-imagepipinstallmatplotlibpipinstallopen

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

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

python读取图像的几种方式

本文介绍几种基于python的图像读取方式:

  • 基于PIL库的图像读取、保存和显示
  • 基于opencv-python的图像读取、保存和显示
  • 基于matplotlib的图像读取、保存和显示
  • 基于scikit-image的图像读取、保存和显示
  • 基于imageio的图像读取、保存和显示

安装方式基本使用pip即可:

pip install pillow
pip install scikit-image
pip install matplotlib 
pip install opencv-python
pip install numpy scipy scikit-learn

基于PIL库的图像读取、保存和显示

from PIL import Image

设置图片名字

img_path = './test.png'

用PIL的open函数读取图片

img = Image.open(img_path)

读进来是一个Image对象

img

请添加图片描述

查看图片的mode

img.mode
'RGB'

用PIL函数convert将彩色RGB图像转换为灰度图像

img_g = img.convert('L')
img_g.mode
'L'
img_g.save('./test_gray.png')

使用PIL库的crop函数可对图像进行裁剪

img_c = img.crop((100,50,200,150))
img_c

请添加图片描述

图像旋转

img.rotate(45)

请添加图片描述

在图像上添加文字

from PIL import ImageDraw, ImageFont
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('/home/fsf/Fonts/ariali.ttf',size=24)
draw.text((10,5), "This is a picture of sunspot.", font=font)
del draw
img

请添加图片描述

基于opencv-python的图像读取、保存和显示

import cv2
img = cv2.imread('./test.png')

使用cv2都进来是一个numpy矩阵,像素值介于0~255,可以使用matplotlib进行展示

img.min(), img.max()
(0, 255)
import matplotlib.pyplot as plt
plt.imshow(img)
plt.axis('off')
plt.show()

基于matplotlib的图像读取、显示和保存

import matplotlib.image as mpimg
img = mpimg.imread('./test.png')
img.min(),img.max()
(0.0, 1.0)

像素值介于0~1之间,可以使用如下方法进行展示

import matplotlib.pyplot as plt
plt.imshow(img,interpolation='spline16')
plt.axis('off')
plt.show()

注意:matplotlib在进行imshow时,可以进行不同程度的插值,当绘制图像很小时,这些方法比较有用,如上所示就是用了样条插值。

基于scikit-image的图像读取、保存和显示

from skimage.io import imread, imsave, imshow
img = imread('./test.png')

这个和opencv-python类似,读取进来也是numpy矩阵,像素值介于0~255之间

img.min(), img.max()
(0, 255)
import matplotlib.pyplot as plt
plt.imshow(img,interpolation='spline16')
plt.axis('off')
plt.show()

基于imageio的图像读取、显示和保存

import imageio
img = imageio.imread('./test.png')
img.min(), img.max()
(0, 255)

这个和opencv-python、scikit-image类似,读取进来也都是numpy矩阵,像素值介于0~255之间

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

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

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


相关推荐

  • C++学生选课系统 【含 代码】

    C++学生选课系统 【含 代码】1.系统分析本系统的用户分为普通用户和管理员两类,其中普通用户包括教师和学生。普通用户只能对自己的信息进行查询与修改,管理员则拥有所有功能权限。1.1模块划分学生选课系统,在登录模块之后,根据系统用户的身份不同划分为三个模块,即:学生模块、教师模块和管理员模块。1.2功能模块描述(1)登录模块登录模块用于用户身份选择与用户登录,完成基本的验证。根据所填信息进行…

    2022年10月15日
    3
  • 国内期货软件开发_正规期货外盘平台

    国内期货软件开发_正规期货外盘平台期货软件搭建-期货软件开发-期货平台搭建,要想做期货软件开发定制,网站的安全性和稳定性非常重要,要搭建一款安全有保障的期货软件,找专业的金融软件搭建公司是必不可少的,那么期货软件开发,期货平台搭建的流程特点有哪些呢?  1.要搭建好用的软件,软件的部署成本和软件的易用性要好一款成熟稳重的期货软件,要经得起时间的推敲,很多公司通过购买软件给到用户,其实他们满足不了二次开发的需求,导致软件更新和后期维护上面根本维护不了。2.要搭建期货平台,价格一定要合理,不要贪图小便宜好的期货平台搭建很多人贪图小便宜,

    2025年10月20日
    4
  • 查看进程的命令 linux_centos查看运行的进程

    查看进程的命令 linux_centos查看运行的进程关键字:linux查进程、杀进程、起进程1.查进程   ps命令查找与进程相关的PID号:   psa显示现行终端机下的所有程序,包括其他用户的程序。   ps-A显示所有程序。   psc列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。   ps-e此参数的效果和指定”A”参数相同。   pse列出程序时

    2022年9月21日
    2
  • freemarker自己定义标签(二)

    freemarker自己定义标签(二)

    2022年1月21日
    42
  • idea mybatisplus插件_浏览器中的插件是什么

    idea mybatisplus插件_浏览器中的插件是什么IDEA中的MyBatis插件MybatispluginFreeMybatispluginMybatistoolsMybatisCodeHelperPro因为idea自己不支持xml和映射器接口之间的跳转,所以搜了一下Mybatis的插件,自己记录一下,备忘。其他的插件有空再试试。Mybatisplugin功能强大,7天免费试用。网上很多激活成功教程教程,我没有试过FreeMybat…

    2022年9月1日
    5
  • 关闭对话框,OnClose和OnCancel

    关闭对话框,OnClose和OnCancel

    2021年12月4日
    49

发表回复

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

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