开发者

详解python如何通过numpy数组处理图像

开发者 https://www.devze.com 2022-12-13 14:01 出处:网络 作者: 侯小啾
目录使用PIL库进行灰度处理旋转180度使用matplotlib库完成灰度处理如图,以该猫咪图片为例(忽略水印)。将该文件命名为cat.jpg,并对其展开以下操作。
目录
  • 使用PIL库进行灰度处理
  • 旋转180度
  • 使用matplotlib库完成灰度处理

如图,以该猫咪图片为例(忽略水印)。将该文件命名为cat.jpg,并对其展开以下操作。

详解python如何通过numpy数组处理图像

使用PIL库进行灰度处理

PIL库适合图像归档和图像批量处理,你可以使用它建立缩略图,转换格式,打印图片等。

现在的版本可以识别和读取大量的图片格式,写入常用的转换和表示格式

它支持多http://www.cppcns.com个其他工具包的展示,提供了show()方法,可以保存图像到磁盘并调用外显示。它将图像保存到磁盘,并调用外部显示工具

并且包含了基本的图像处理功能,包括点操作,使用内置卷积内核过滤,色彩空间转换。

支持更改图像大小、旋转、任意仿射变换

from PIL import Image
import numpy as np

#http://www.cppcns.com 读取编程客栈图像,并转化为数组
im = np.array(Image.open("cat.jpg"))

# 灰度处理公式
gray_narry = np.array([0.299, 0.587, 0.114])
x = np.dot(im, grhttp://www.cppcns.comay_narry)

# 数组转图片
gray_cat = Image.fromarray(x.astype('uint8'))
# 保存图片
gray_cat.save('gray_cat.jpg')
# 展示查看
gray_cat.show()

处理成功!

详解python如何通过numpy数组处理图像

旋转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()

程序执行结果:

详解python如何通过numpy数组处理图像

使用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()

详解python如何通过numpy数组处理图像

到此这篇关于详解python如何通过numpy数组处理图像的文章就介绍到这了,更多相关python 处理图像内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们zwMvbL

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号