Numpy模块使用数组对图像进行处理

Numpy可以用于处理任意维度的数组,这篇文章我们分享一些对图像的基本操作,主要通过对数组的切片实现。

首先分享一下Python的切片操作,首先是一维数组的切片 ,该操作与列表的切片非常相似。

代码:

import numpy as np

# 使用array函数,通过list创建数组对象
L = np.array([1,2,3,4,5])

print(L[1:3])    # 输出下标从1到3的元素
print(L[2:])     # 输出下标为2及以后的元素
print(L[:4])     # 输出下标为4及之前的元素
print(L[::-1])   # 逆序输出

输出结果:

[2 3]
[3 4 5]
[1 2 3 4]
[5 4 3 2 1]

然后是对二维数组的切片操作,与一维数组一样,就是维度发生了变化

代码:

import numpy as np

# 创建二维数组
L = np.array([[1,2,3],[4,5,6]])

print(L[:2,1:])
print(L[:,:2])
print(L[1,:2])
print(L[::-1][::-1])

输出结果:

[[2 3]
 [5 6]]
[[1 2]
 [4 5]]
[4 5]
[[1 2 3]
 [4 5 6]]

明白了数组的切片操作,那么我们就可以利用其对图像进行处理

 首先我们需要加载一下图片

import matplotlib.pyplot as plt

image = plt.imread('meinv.png')
plt.imshow(image)

plt.show() #输出图像

实现图像的水平翻转

plt.imshow(image[:,::-1])
plt.show()

实现图像的垂直翻转

plt.imshow(image[::-1])
plt.show()

实现图像内特定区域的截取,作为正人君子,我们来截取一下小姐姐漂亮的脸蛋哈,主要是通过对xy轴坐标的截取来实现的。

plt.imshow(image[:500,490:890])
plt.show()

将图像转化为灰度图,通过计算RGB(图片的像素,元素取值为1~255,颜色逐渐由暗变亮)的加权平均值

weights = [0,0.2]
g_image = np.dot(image[..., :2], weights)
plt.imshow(g_image)
plt.show()

        最后扯一句题外话哈,个人感觉虽然学习很枯燥,但Python的学习还是有很多乐趣的,正在学习Python的小伙伴一定要加油,不要轻易放弃啊!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值