详解python如何通过numpy数组处理图像
时间:2022-12-04 12:56:20|栏目:Python代码|点击: 次
如图,以该猫咪图片为例(忽略水印)。将该文件命名为cat.jpg,并对其展开以下操作。
使用PIL库进行灰度处理
PIL库适合图像归档和图像批量处理,你可以使用它建立缩略图,转换格式,打印图片等。
现在的版本可以识别和读取大量的图片格式,写入常用的转换和表示格式
它支持多个其他工具包的展示,提供了show()方法,可以保存图像到磁盘并调用外显示。它将图像保存到磁盘,并调用外部显示工具
并且包含了基本的图像处理功能,包括点操作,使用内置卷积内核过滤,色彩空间转换。
支持更改图像大小、旋转、任意仿射变换
from PIL import Image import numpy as np # 读取图像,并转化为数组 im = np.array(Image.open("cat.jpg")) # 灰度处理公式 gray_narry = np.array([0.299, 0.587, 0.114]) x = np.dot(im, gray_narry) # 数组转图片 gray_cat = Image.fromarray(x.astype('uint8')) # 保存图片 gray_cat.save('gray_cat.jpg') # 展示查看 gray_cat.show()
处理成功!
旋转180度
所谓旋转操作,即 将三维数组中的数据,以每一行(三个)为单位 倒序排列。
from PIL import Image import numpy as np # 读取图像,并转化为数组 im = np.array(Image.open("cat.jpg")) # 旋转 x = im[::-1] # 数组转图片 cat2 = Image.fromarray(x.astype('uint8')) # 保存图片 cat2.save('cat2.jpg') # 展示查看 cat2.show()
程序执行结果:
使用matplotlib库完成灰度处理
import numpy as np import matplotlib.pyplot as plt n1 = plt.imread("cat.jpg") # 读取了图片,转化为数组,三维的 plt.imshow(n1) n2 = np.array([0.299, 0.587, 0.114]) x = np.dot(n1, n2) plt.imshow(x, cmap="gray") plt.show()
上一篇:selenium执行js并绕过webdriver监测常见方法
栏 目:Python代码
下一篇:python画一个玫瑰和一个爱心
本文地址:http://www.codeinn.net/misctech/220550.html