详解python如何通过numpy数组处理图像
作者:侯小啾 发布时间:2023-04-07 03:53:20
标签:python,处理图像,numpy,数组
如图,以该猫咪图片为例(忽略水印)。将该文件命名为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()
来源:https://skylarkprogramming.blog.csdn.net/article/details/123745510


猜你喜欢
- 使用python实现双向链表,供大家参考,具体内容如下双向链表: 指的是讲数据链接在一起,每个数据是一个节点,每一个节点都有一个数据区,两个
- 前言面对计算密集型的任务,除了多进程,就是分布式计算,如何用 Python 实现分布式计算呢?今天分享一个很简单的方法,那就是借助于 Ray
- 前言最近因为工作的原因,在做APP购物车下单支付这一块儿.被测试提了一个bug,当点加入购物车点的比较快的时候,同一个商品在购物车中出现了两
- 目录前言初始化项目设计代码实现按需加载播放音频录音长按事件运行调试总结前言相信很多养猫的人都很想跟自己的猫进行沟通,当猫咪发出各种不同声音的
- 第一种情况:有RAID,还需要做数据库备份吗?回答:需要。有了RAID,万一部份磁盘损坏,可以修复数据库,有的情况下数据库甚至可以继续使用。
- 独立 fmt Log输出重定向golang的fmt包的输出函数 Println、Printf、PrintStack等,默认将打印输出到os.
- mysql最常用的索引结构是btree(O(log(n))),但是总有一些情况下我们为了更好的性能希望能使用别的类型的索引。hash就是其中
- 检测对象中属性的存在与否可以通过几种方法来判断。 1.使用in关键字该方法可以判断对象的自有属性和继承来的属性是否存在。 var o={x:
- 简介:ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用crypto
- 旁站查询来源:http://dns.aizhan.comhttp://s.tool.chinaz.com/samehttp://i.link
- 名片管理系统一、思路1、定义名片操作选项2、把增加的名片信息存储到字典中3、所有名片信息存储到列表4、对于误操作给出提示二、用到的知识点1、
- 1、引言小 * 丝:鱼哥, 都说要想代码写的溜,Lamdba不能少。小鱼:你在项目代码多写几个lamdba试试,看看架构师找不找你喝茶水。小 * 丝
- 一、需求描述手上有大量外文文档(本案例以5份为例,分别命名为 test1.docx test2.docx 以此
- Haar特征哈尔特征使用检测窗口中指定位置的相邻矩形,计算每一个矩形的像素和并取其差值。然后用这些差值来对图像的子区域进行分类。haar特征
- 话不多说,小工具需求如下: 功能需求 -- 电脑开机后自动执行时间同步 非功能需求 -- 安装执行简单,无需安装额外环境一、代码实现基于以上
- 一、vscode插件介绍在我们演示插值表达式之前,我们先安装这一个VScode给我们提供的插件,它可以将我们书写好的网页通过服务端口的方式进
- 编号标准宗地编码(landCode)所在区段编码(sectCode)1131001BG001G0012131001BG002G0013131
- 我们在网页中使用CSS来设置网页、表格和字体大小,一般使用的是网络上较流行的9磅字:<STYLE type=TEXT/CSS
- 创建python文件fling.py,代码如下:#!/usr/bin/env monkeyrunnerimport timefrom com
- 1、此api已经关闭https://api.map.baidu.com/highacciploc/v1?qcip=220.181