python收集图片演示_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()

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绘制的图像

此方法适合保存由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

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图片

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的所有知识点的摘要. 您还可以在下面的相关文章中找到相关文章,以进行进一步研究. 感谢您的阅读和支持.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-214982-1.html

你可能感兴趣的:(python收集图片演示)