python读取、显示、保存图片

2023-11-09

一、opencv

:cv2.imread(path, mode);读取出来是ndarray。

如果是读取灰度图,需要指定颜色模式cv2.IMREAD_GRAYSCALE,这样读取出的是一个二维数组,而不是彩色图像的三维数组

如果读取彩色图像,则不需要指定读取模式,这样读取出的是一个三维数组(H, W, 3),通道的顺序是BGR

:cv2.imwrite(path, image)。

import cv2
# 使用opencv读写图片
image = cv2.imread('D:/Graph/1.png', cv2.IMREAD_GRAYSCALE)
cv2.imwrite(path, image)

二、Pillow

读:Image.open(path);读取出来是PIL Image对象。

使用PIL包读取图片时不需要指定颜色模式,程序会自动判断。彩色图像的通道顺序为RGB。 

使用这个包的好处在于会读出来一个Image对象,方便后续pytorchtransform方法使用。

写:Image.save(fp, format=None)

save() 方法用于保存图像,当不指定文件格式时,它会以默认的图片格式来存储;如果指定图片格式,则会以指定的格式存储图片。

并非所有的图片格式都可以用 save() 方法转换完成,比如将 PNG 格式的图片保存为 JPG 格式,如果直接使用 save() 方法就会出现以下错误:

from PIL import Image
im = Image.open("C:/Users/Administrator/Desktop/c-net.png")
im.save('C:/Users/Administrator/Desktop/c.biancheng.net.jpg')
# 系统错误,RGBA不能作为JPEG图片的模式
# OSError: cannot write mode RGBA as JPEG

引发错误的原因是由于 PNG 和 JPG 图像模式不一致导致的。其中 PNG 是四通道 RGBA 模式,即红色、绿色、蓝色、Alpha 透明色;JPG 是三通道 RGB 模式。因此要想实现图片格式的转换,就要将 PNG 转变为三通道 RGB 模式。

Image 类提供的 convert() 方法可以实现图像模式的转换。该函数提供了多个参数,比如 mode、matrix、dither 等,其中最关键的参数是 mode,其余参数无须关心。

# convert(mode,parms**)
# mode:指的是要转换成的图像模式
# params:其他可选参数
from PIL import Image
im = Image.open("C:/Users/Administrator/Desktop/c-net.png")
#此时返回一个新的image对象,转换图片模式
image=im.convert('RGB')
#调用save()保存
image.save('C:/Users/Administrator/Desktop/c.biancheng.net.jpg')

三、matplotlib

显示图片用matplotlib.pyplot包:plt.imshow(ndarray, cmap)

import matplotlib.pyplot as plt
# plt.show函数需要指明颜色模式
plt.imshow(image, cmap='gray')
plt.show()
plt.savefig(path)

参考:

python读取、显示、保存图片的几种方法_遇到坎就得迈过去的博客-CSDN博客_python 保存图片

Python Pillow Image.save 保存为jpg图片压缩问题_python_脚本之家 (jb51.net)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python读取、显示、保存图片 的相关文章

  • 深度学习图像处理之VGG网络模型 (超级详细)

    VGG介绍 由牛津大学著名研究所VGG提出 斩获该年ImageNet竞赛中Localization Task 定位任务 第一名和Classification Task 分类任务 第二名 VGG网络的配置 VGG 16是许多模型中的主干网络
  • JPEG编码过程详解

    JPEG编码过程详解 本文旨在对JPEG编码过程中的细节步骤进行说明 具体原理部分请参照Wikipedia 色彩空间转换 原始图像的像素点是以RGB形式存储的 即每个像素点由3个字节的数据组成 分别为Red通道 Green通道和Blue通道
  • 图像处理——边缘检测

    边缘检测 一 边缘检测的目的 二 边缘检测算子有哪些 三 Canny算子 3 1 简述Canny算子 3 2 简述下Canny的计算过程 四 sobel算子 4 1 简述一下sobel算子 五 深度学习下的边缘检测 5 1 HED 整体嵌套
  • c#图像几何特征匹配

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks using Ope
  • MATLAB小技巧(33)arima时间序列

    MATLAB小技巧 33 arima时间序列 前言 一 MATLAB仿真 二 仿真结果 三 小结 前言 MATLAB进行图像处理相关的学习是非常友好的 可以从零开始 对基础的图像处理都已经有了封装好的许多可直接调用的函数 这个系列文章的话主
  • Conditional Prompt Learning for Vision-Language Models

    本文是对CoOp方法提出的改进 CoOp由论文Learning to Prompt for Vision Language Models提出 CoOp针对CLIP模型做了改进 将人工设计的提示修改为了可学习的参数 具体来说就是 CoOp不再
  • mingw qt5.14.2 编译 vtk9.1.0

    1 软件 qt版本 qt opensource windows x86 5 14 2 exe 安装mingw选项 cmake版本 cmake 3 21 2 windows x86 64 msi VTK源码版本 VTK 9 1 0 tar g
  • python批量处理

    python opencv图像二值化批量处理 from skimage import data dir io transform color filters import numpy as np import cv2 def convert
  • 方框滤波,均值滤波,高斯滤波

    邻域算子 局部算子 是利用给定像素周围的像素值的决定此像素的最终输出值的一种算子 对于邻域算子 除了用于局部色调调整以外 还可以用于图像滤波 实现图像的平滑和锐化 图像边缘增强或者图像噪声的去除 而线性邻域滤波是一种常用的邻域算子 像素的输
  • SIFT和SURF的替换算法——ORB (Oriented FAST and Rotated BRIEF 快速定向和旋转)

    SIFT和SURF的替代算法 ORB Oriented FAST and Rotated BRIEF 快速定向和旋转 1 效果图 2 源码 参考 1 用于关键点检测和描述的SIFT Scale Invariant Feature Trans
  • PR-RL:Portrait Relighting via Deep Reinforcement Learning

    文章目录 Title PR RL Portrait Relighting via Deep Reinforcement Learning 1 Article 1 1 Abstract and Introduction 1 2 Conclus
  • 【Matlab图片剪裁】

    标题Matlab剪裁图片 提取感兴趣部分 问题描述 当需要从一幅图片中提取一些感兴趣的内容时 比如一些细小的文字 图案等 如果从整个图片中直接提取 必然会大大增加计算量 导致处理时间很长 而且多数计算都是无效计算 进而非常消耗资源 解决办法
  • 2021全国电设(F题)openmv的图像识别之数字识别

    基于openmv的图像识别 通过参加全国电子设计大赛F题总结出openmv4的数字识别 其它版本暂时没试过 欢迎交流 openmv简介 OpenMV是一个开源 低成本 功能强大的机器视觉模块 以STM32F427CPU为核心 集成了OV77
  • cv2.minAreaRect()

    功能 求出在点集下的最小面积矩形 输入 格式 points array shape n 1 2 解释 其中points是点集 数据类型为ndarray array x1 y1 x2 y2 xn yn 输出 格式 rect tuple x y
  • Python的PIL库

    Python图像库PIL Python Image Library 是python的第三方图像处理库 图像类Image class Image类是PIL中的核心类 比如从文件中加载一张图像 处理其他形式的图像 或者是从头创造一张图像等 Im
  • 图像处理——我理解的傅里叶变换

    1 傅里叶变换的理解 傅里叶变换的相关数学公式目前还没有搞懂 先不整那个东西 我们主要是研究傅里叶变换的一些思想和应用 这个思想起源于牛顿研究那个三棱镜 白光透过棱镜之后会被分解为七种颜色的光 这些光叠加又能形成白光 所以说可以把一种事物分
  • 图像特征提取技术

    目 录 前 言 基于颜色的特征提取 1 颜色空间 2 直方图以及特征提取 基于纹理的特征提取 1 灰度共生矩阵 2 tamura纹理 基于深度神经网络的图像处理 前 言 图像特征提取属于图像分析的范畴 是数字图像处理的高级阶段 本文将从理论
  • 人工智能超分辨率重建:揭秘图像的高清奇迹

    导言 人工智能超分辨率重建技术 作为图像处理领域的一项重要创新 旨在通过智能算法提升图像的分辨率 带来更为清晰和细致的视觉体验 本文将深入研究人工智能在超分辨率重建方面的原理 应用以及技术挑战 1 超分辨率重建的基本原理 单图超分辨率 利用
  • 【图像配准】

    非配对配准 Non rigid registration 和配对配准 Rigid registration 是医学图像配准中常用的两种方法 它们有着不同的含义和应用 非配对配准 Non rigid registration 非配对配准是指将
  • 盘点那些年我们一起玩过的网络安全工具

    大家好 我是IT共享者 这篇文章给大家盘点那些年 我们一起玩过的网络安全工具 一 反恶意代码软件 1 Malwarebytes 这是一个检测和删除恶意的软件 包括蠕虫 后门 流氓 拨号器 间谍软件等等 快如闪电的扫描速度 具有隔离功能 并让

随机推荐

  • modelsim crack找不到文件packages on . Failed to load package info... 找不到文件 - mgls.dll 找不到文件 - mgls64.dll

    问题描述 最近下载了Modelsim SE 64 2020 4版本 按照提示操作后显示找不到文件packages on Failed to load package info 找不到文件 mgls dll 找不到文件 mgls64 dll
  • MATLAB 软件功能简介

    MATLAB 的名称源自 Matrix Laboratory 1984 年由美国 Mathworks 公司推向市场 它是一种科学计算软件 专门以矩阵的形式处理数据 MATLAB 将高性能的数值计算和可 视化集成在一起 并提供了大量的内置函数
  • imx6ull移植mplayer

    linux开发板播放许嵩的温泉 本文在imx6ul上移植mplayer 软件包 https download csdn net download qq 32605451 12510469 文件包含mplayer zlib alsa lib和
  • java包机制

    包机制是java中管理类的重要手段 开发中 我们会遇到大量同名的类 通过包我们很容易对解决类重名的问题 也可以实现对类的有效管理 包对于类 相当于文件夹对于文件的作用 我们通过package实现对类的管理 package的使用有两个要点 1
  • VS2013写代码时几个常用的快捷键

    0 查看函数具体实现 说明 组合键是同时按 非组合键是按住Ctrl依次按后面的键 1 格式化 格式化全部代码 Ctrl A K F 格式化选中的代码 Ctrl K F 2 注释代码 注释代码 Ctrl K C comment 反注释代码 C
  • Python基本函数:np.multiply()

    Python基本函数 np multiply 一 函数说明 二 函数用法 格式 np multiply a b 注意 文中用到了arange dot reshape函数以及转置 T 一 函数说明 由于multiply是ufunc函数 ufu
  • 【C++】string类浅拷贝的解决方式

    1 浅拷贝 对内存地址的复制 让目标对象指针和源对象指向同一片内存空间 最终在释放的时候造成了多次释放导致程序崩溃 如果类中设计到资源管理时 用户必须要显式实现拷贝构造函数以及赋值运算符重载 因为编译器默认是按照浅拷贝的方式生成的 2 深拷
  • MySQL错误:1146-table 'mysql.proc' doesn't exist

    出现错误原因为 误删除了mysql数据库 解决方案 运行安装程序setup exe修复 repair 博主在删除其他数据库的时候 调用命令drop 误删mysql原数据库 使用mysql安装程序的修复解决 其他mysql命令 source
  • Interview Questions : Linux Device Drivers and Linux Kernel

    本文转载至 http priyaranjan technicalzone blogspot com 2014 01 interview questions embedded system html 1 Describe different
  • 反应器(Reactor)模式-golang探索

    反应器模式 在以前的博文模式设计概述 反应器 Reactor 模式介绍过相关的概念和流程 当时使用了python但是从结果上来看并没有起到很明显的效果 最近在处理有关proxy的项目中 刚刚好涉及到有关性能的问题 故本文探索一下go的反应器
  • vue全局使用sass变量

    需求 框架需要使用scss 之后不想把很多重复的css一个一个写 就提取出来咯 到时候只需要更改scss文件就可以了 不用一个一个的找 1 下载sass 这我下的俩个版本 如果你们下载最新版不兼容可以参考我的版本下载 sass 1 66 1
  • etcd安装

    ETCD安装 windows版本 下载 下载地址https github com etcd io etcd releases 安装 其实也不用安装 下载解压后 得到如下 选中etcd exe 右键 属性 兼容性 以管理员身份运行此程序勾上
  • ajax实现前后端传输流文件(图片)

    ajax实现前后端传输流文件 图片 在参考了一众CSDN大神的帖子之后终于实现了从后端获取图片并正确显示在canvas中 下面是代码 var xmlhttp xmlhttp new XMLHttpRequest xmlhttp open G
  • 解决使用pip无法安装rasa与无限依赖告警:INFO: This is taking longer than usual. You might need to provide the....

    在直接使用 pip install rasa时几乎无限告警 INFO pip is looking at multiple versions of sanic to determine which version is compatible
  • 套接字及分层模型(一)

    套接字通信 1 内核开发的工程师将网络相关的头文件存储到一个专门目录include net中 而不是存储到include linux 2 ISO OS和TCP IP参考模型 应用层 网络服务与最终用户的接口 表示层 数据的表示 安全及压缩
  • Ubuntu Nginx+Rtmp服务器搭建

    参考博文 他人博文 首先感谢博主的分享 我用的是ubnutu16 04 在我搭的时候会碰到几个问题 1 下载安装 nginx 和nginx rtmp 编译依赖工具的时候会出现lib3的依赖库没有源 要更新 1 apt get update
  • 第一次连接数据库时速度很慢问题解决

    问题描述 在web容器加载完毕后 调用接口时 init连接池时 速度很慢 速度可能在1分钟左右 主要是因为它会先去查询DNS 然后再连接 解决方案 在mysql 的配置文件中 配置 skip name resolve 结果 速度有明显提升
  • Eclipse安装JavaScript智能提示插件 spket

    1 首先下载eclipse的spket插件 http www spket com download html 也可以下载Spket IDE单独安装使用 不用eclipse
  • 硬件系统工程师宝典(12)-----EMC应该知道的事

    各位同学大家好 欢迎继续做客电子工程学习圈 今天我们继续来讲这本书 硬件系统工程师宝典 上篇我们说到在做电源完整性分析时去耦电容要遵循的规则 大电容的去耦半径大 小电容的去耦半径小 电容焊盘扇出时 双过孔可以减少寄生电感等 今天我们开始学习
  • python读取、显示、保存图片

    一 opencv 读 cv2 imread path mode 读取出来是ndarray 如果是读取灰度图 需要指定颜色模式为cv2 IMREAD GRAYSCALE 这样读取出的是一个二维数组 而不是彩色图像的三维数组 如果读取彩色图像