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

作者:侯小啾 时间:2023-04-07 03:53:20 

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

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

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

处理成功!

详解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数组处理图像

来源:https://skylarkprogramming.blog.csdn.net/article/details/123745510

标签:python,处理图像,numpy,数组
0
投稿

猜你喜欢

  • php生成缩略图填充白边(等比缩略图方案)

    2024-06-05 09:50:16
  • Python实现数据可视化看如何监控你的爬虫状态【推荐】

    2022-07-15 11:50:43
  • 多级联动下拉选择框,动态获取下一级

    2008-09-04 10:34:00
  • 在win10和linux上分别安装Python虚拟环境的方法步骤

    2023-09-06 18:40:01
  • Python温度转换实例分析

    2023-08-21 22:48:32
  • Python中处理Session和Cookie的方法

    2023-09-09 00:51:18
  • 对django layer弹窗组件的使用详解

    2021-09-08 00:09:38
  • ThinkPHP基于think-queue的队列插件实现消息推送

    2023-05-25 05:59:12
  • ASP中SESSION无法保存问题的解决办法

    2023-06-27 15:40:12
  • Python 如何实时向文件写入数据(附代码)

    2022-11-10 13:40:03
  • Python调用腾讯云短信服务发送手机短信

    2021-10-07 16:55:38
  • JS实现获取数组中最大值或最小值功能示例

    2024-05-02 16:15:26
  • Access创建一个简单MIS多媒体管理系统

    2008-10-13 12:31:00
  • Django组件content-type使用方法详解

    2023-10-01 13:54:42
  • Python OpenCV超详细讲解读取图像视频和网络摄像头

    2023-11-26 05:22:36
  • 浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处

    2024-04-22 13:01:00
  • 如何把数组转换成字符串?

    2009-11-06 13:49:00
  • mysql 5.7.12 winx64安装配置方法图文教程

    2024-01-28 15:53:26
  • python commands模块的适用方式

    2022-02-26 19:38:14
  • python线程池threadpool实现篇

    2022-03-21 19:37:34
  • asp之家 网络编程 m.aspxhome.com