python:图像的读入显示与存储

Posted 玊柯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python:图像的读入显示与存储相关的知识,希望对你有一定的参考价值。

目录

读入图像

OpenCV:

skimage.io:

存储图像

OpenCV:

skimage.io:

matplotlib.pyplot:

显示图像

OpenCV:

matplotlib.pyplot:


引入本文所用模块

import cv2 as cv
from skimage import io
import matplotlib.pyplot as plt

读入图像

OpenCV:

img_bgr = cv.imread('./img.jpg',1) #BGR格式
img_gray = cv.imread('./img_gray',0) #灰度图
  • cv.imread(fname,0)
  • cv.imread(fname,1)

fname( 即filename),表示文件名或者文件路径,为字符串

0 表示 以灰度图的形式读入图像;1表示 以彩图(BGR格式)读入图像

skimage.io:

img = io.imread('./img.jpg') #RGB格式
img_gray = io.imread('./img_gray.jpg',as_gray=True) #灰度图
  • io.imread(fname,as_gray=False)

fname 表示文件名或者文件路径

as_gray 不写默认为False,表示读入的图像为彩图RGB格式);为True,表示读入的图像为灰度图

存储图像

OpenCV:

cv.imwrite('./img_cv.jpg',img) #img为BGR格式
  • cv.imwrite(fname,img)
  • 注意:imwrite保存成功返回值为True,保存的图像为彩图时要求格式为BGR

skimage.io:

  • io.imsave(fname,img)
io.imsave('./img_io.jpg',img) #img为RGB格式

matplotlib.pyplot:

  • plt.imsave(fname,img)
plt.imsave('./img_plt.jpg',img) #img为RGB格式

显示图像

OpenCV:

cv.imshow("img",img) #显示图像
cv.waitKey(0) #等待指令
  • cv.imshow(title,img)
  • 注意:必须有等待指令,否则图像将一闪而过

matplotlib.pyplot:

1、脚本层

通俗来讲,就是基础层,简单方便。对于新手以及只是想显示图像、对绘图细节没有要求的绘图情况比较适合

plt.imshow(img)   #构图
plt.title("img")  #显示标题   
plt.show()        #绘图(展示图像)

​​​​2、艺术家层

没错,就是字面意思,拿起画板,抚平画纸,绘图,像一个艺术家一样,更注重细节,可调控细节。

fig, ax = plt.subplots(2,1,figsize=(12,8))

ax[0].imshow(img) # 在第1个画布上展示彩图
ax[0].set_title("img")
ax[1].imshow(img_gray,cmap='gray') #在第2个画布上展示灰度图
ax[1].set_title("img_gray")

plt.tight_layout()
plt.show()
  • plt.subplots(2,1,figsize=(12,8)):表示构造一个大小为 12X8 的画板,画板上有 2行1列 个画布,返回值 fig 表示画板对象,返回值 ax 表示画布对象
  • 第一行第一列的画布表示为 ax[0,0] ax[0][0] ,如果只有一列可写成ax[0](编程语言中以0作为第一个)
  • cmap : 颜色映射,显示灰度图用 cmap='gray'即可

谢谢你的浏览,如果哪里有问题,欢迎指正~

以上是关于python:图像的读入显示与存储的主要内容,如果未能解决你的问题,请参考以下文章

python OpenCV 读取并显示图像

在 python openCV 中一次将许多图像读入内存

OpenCV的图像读取显示及保存

用Python显示灰度图像的灰度直方图

matlab图像显示及保存

OpenCV中图像的读取,显示与保存