主页 > 人工智能  > 

【Python】python读取,显示,保存图像的几种方法

【Python】python读取,显示,保存图像的几种方法
一、PIL:Python Imaging Library(pillow)

PIL读取图片不直接返回numpy对象,可以用numpy提供的函数np.array()进行转换,亦可用Image.fromarray()再从numpy对象转换为原来的Image对象,读取,显示,保存以及数据格式转换方法见如下代码:

from PIL import Image import numpy as np imagepath = 'img.jpg' image = Image.open(imagepath) image.show() image.save('img1.jpg') # 图片保存在项目文件夹下 二,Matplotlib

读取,显示,保存方法见如下代码:

import matplotlib.pyplot as plt import matplotlib.image as mpimg imagepath = 'img.jpg' image = mpimg.imread(imagepath) # 显示图片 plt.imshow(image) # 保存文件 mpimg.imsave("cat1.jpg", image) 三,OpenCV

1.直接将图像显示在窗口中,并保存。

import cv2 import matplotlib.pyplot as plt imagepath = 'img.jpg' image = cv2.imread(imagepath) # 保存图片 cv2.imwrite("cat2.jpg", image) # 显示图片 cv2.imshow('bgrImage', image) # 对窗口进行命名并显示 cv2.waitKey() cv2.destroyAllWindows()

 

2.放置在画布中显示

import cv2 import matplotlib.pyplot as plt # 设置图片路径 imagepath = 'img.jpg' image = cv2.imread(imagepath) # 将BGR图像转换为RGB img_1 = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 显示图形 plt.subplot() # 直接指定划分方式和位置 plt.imshow(image) #显示图像 plt.title('噪声图像') # 设置标题 plt.xticks([]), plt.yticks([]) # 设置坐标轴,参数[]是不显示坐标轴 plt.show()

 由于opencv默认读取图片用的是BGR通道,所以后续处理如果用RGB通道,如matplotlib就是采用的RBG通道,则需要进行色彩转换,否则会因为不兼容导致色彩出现偏差,所以可以加上这一行代码 :

image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB),

 具体原因见我的一篇博客:【Bug】当用opencv库的imread()函数读取图像,用matplotlib库的plt.imshow()函数显示图像时,图像色彩出现偏差问题的解决方法-CSDN博客

 当要显示多张图片的时候,需要用plt.subplot()函数对画布区域进行划分,如果没有指定参数,则默认为一个子图。详细用法见我的博客:【Python】Matplotlib-多张图像的显示-CSDN博客

显示效果如下: 

 

标签:

【Python】python读取,显示,保存图像的几种方法由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【Python】python读取,显示,保存图像的几种方法