Python的实现方法和读取和显示图片的示例演示

电脑杂谈  发布时间:2020-05-19 06:00:40  来源:网络整理

python读取excel中文_python读取exif信息_python 读取照片

本文的主要知识点是有关python,阅读图片,显示图片和内容的知识. 如果您想对相关知识点进行系统且深入的研究python 读取照片,可以参考以下电子书

Python实现了两种读取和显示图片的方法

除了在Python中使用opencv外,您还可以使用两个库matplotlib和PIL来处理图片. 我更喜欢matpoltlib,因为它的语法更像是matlab.

一个,matplotlib

1. 显示图片

import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as np
lena = mpimg.imread(lena.png) # 读取和代码处于同一目录下的 lena.png
# 此时 lena 就已经是一个 np.array 了,可以对它进行任意处理
lena.shape #(512, 512, 3)
plt.imshow(lena) # 显示图片
plt.axis(off) # 不显示坐标轴
plt.show()

2. 显示频道

# 显示图片的第一个通道
lena_1 = lena[:,:,0]
plt.imshow(lena_1)
plt.show()
# 此时会发现显示的是热量图,不是我们预想的灰度图,可以添加 cmap 参数,有如下几种添加方法:
plt.imshow(lena_1, cmap=Greys_r)
plt.show()
img = plt.imshow(lena_1)
img.set_cmap(gray) # hot 是热量图
plt.show()

python读取exif信息_python 读取照片_python读取excel中文

3. 将RGB转换为灰度

matplotlib中没有合适的功能将RGB图像转换为灰度图像. 您可以根据以下公式自定义一个:

def rgb2gray(rgb):
  return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
gray = rgb2gray(lena)  
# 也可以用 plt.imshow(gray, cmap = plt.get_cmap(gray))
plt.imshow(gray, cmap=Greys_r)
plt.axis(off)
plt.show()

4. 缩放图像

这里将使用Scipy

from scipy import misc
lena_new_sz = misc.imresize(lena, 0.5) # 第二个参数如果是整数,则为百分比,如果是tuple,则为输出图像的尺寸
plt.imshow(lena_new_sz)
plt.axis(off)
plt.show()

5. 保存图片

5.1保存matplotlib绘制的图像

python 读取照片_python读取excel中文_python读取exif信息

此方法适合保存由matplotlib绘制的任何图像,这些图像等效于屏幕捕获.

plt.imshow(lena_new_sz)
plt.axis(off)
plt.savefig(lena_new_sz.png)

5.2将数组另存为图像

from scipy import misc
misc.imsave(lena_new_sz.png, lena_new_sz)

5.3直接保存数组

读取后,仍然可以按照之前显示阵列的方法显示图像python 读取照片,这种方法完全不会造成图像质量的损失

np.save(lena_new_sz, lena_new_sz) # 会在保存的名字后面自动加上.npy
img = np.load(lena_new_sz.npy) # 读取前面保存的数组

第二,PIL

python 读取照片_python读取exif信息_python读取excel中文

1. 显示图片

from PIL import Image
im = Image.open(lena.png)
im.show()

2. 将PIL图片图片转换为numpy数组

im_array = np.array(im)
# 也可以用 np.asarray(im) 区别是 np.array() 是深拷贝,np.asarray() 是浅拷贝

3. 保存PIL图片

直接调用Image类的save方法

from PIL import Image
I = Image.open(lena.png)
I.save(new_lena.png)

4. 将numpy数组转换为PIL图片

python读取excel中文_python读取exif信息_python 读取照片

Matplotlib.image在这里用于读取图像数组. 请注意,此处读取的数组的类型为float32,范围为0-1,而PIL.Image的数据类型为uinit8,范围为0-255,因此需要进行转换. :

import matplotlib.image as mpimg
from PIL import Image
lena = mpimg.imread(lena.png) # 这里读入的数据是 float32 型的,范围是0-1
im = Image.fromarray(np.uinit8(lena*255))
im.show()

5. 将RGB转换为灰度图像

from PIL import Image
I = Image.open(lena.png)
I.show()
L = I.convert(L)
L.show()

使用opencv读取图片的python示例

安装环境后,我开始了第一个Hello单词示例,如何读取图片和保存图片

import cv2 
import numpy as np 
import matplotlib.pyplot as plt 
#读取图片代码 
img = cv2.imread(test.jpg,cv2.IMREAD_GRAYSCALE) 
#IMREAD_COLOR = 1 
#IMREAD_UNCHANGED = -1 
#展示图片 
cv2.imshow(image,img) 
cv2.waitKey(0) 
cv2.destroyAllWindows() 
#使用matplotlib分析图片 
#plt.imshow(img,cmap=gray,interpolation=bicubic) 
#plt.plot([50,100],[80,100],c,linewidth=5) 
#plt.show() 
#把图片保存为png格式的灰色文件。 
cv2.imwrite(testgray.png,img) 

以上是这次与您共享的有关Java的所有知识点的摘要. 您还可以在下面的相关文章中找到相关文章,以进行进一步研究. 感谢您的阅读和支持.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-214982-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...