Numpy处理图片方法

简介: Numpy处理图片方法

在进行图像领域的深度学习的时候经常需要对图片进行处理,包括图像的翻转,压缩,截取等,一般都是用Numpy来处理。处理起来也很方便。

In[3]

导入需要的包

import numpy as np

import matplotlib.pyplot as plt

from PIL import Image

读入图片

image = Image.open('./work/vehicle1.jpg')

image = np.array(image)

查看数据形状,其形状是[H, W, 3],

其中H代表高度, W是宽度,3代表RGB三个通道

image.shape

(437, 700, 3)

In[4]

原始图片

plt.imshow(image)

?

In[7]

垂直方向翻转

这里使用数组切片的方式来完成,

相当于将图片最后一行挪到第一行,

倒数第二行挪到第二行,...,

第一行挪到倒数第一行

对于行指标,使用::-1来表示切片,

负数步长表示以最后一个元素为起点,向左走寻找下一个点

对于列指标和RGB通道,仅使用:表示该维度不改变

image2 = image[::-1, :, :]

plt.imshow(image2)

?

In[8]

水平方向翻转

image3 = image[:, ::-1, :]

plt.imshow(image3)

?

In[5]

180度方向翻转

image31 = image[::-1, ::-1, :]

plt.imshow(image31)

?

In[9]

保存图片

im3 = Image.fromarray(image3)

im3.save('im3.jpg')

In[10]

高度方向裁剪

H, W = image.shape[0], image.shape[1]

注意此处用整除,H_start必须为整数

H1 = H // 2

H2 = H

image4 = image[H1:H2, :, :]

plt.imshow(image4)

?

In[11]

宽度方向裁剪

W1 = W//6

W2 = W//3 * 2

image5 = image[:, W1:W2, :]

plt.imshow(image5)

?

In[13]

两个方向同时裁剪

image5 = image[H1:H2, \

          W1:W2, :]

plt.imshow(image5)

?

In[14]

调整亮度

image6 = image * 0.5

plt.imshow(image6.astype('uint8'))

?

In[15]

调整亮度

image7 = image * 2.0

由于图片的RGB像素值必须在0-255之间,

此处使用np.clip进行数值裁剪

image7 = np.clip(image7, \

    a_min=None, a_max=255.)

plt.imshow(image7.astype('uint8'))

?

In[16]

高度方向每隔一行取像素点

image8 = image[::2, :, :]

plt.imshow(image8)

?

In[17]

宽度方向每隔一列取像素点

image9 = image[:, ::2, :]

plt.imshow(image9)

?

In[18]

间隔行列采样,图像尺寸会减半,清晰度变差

image10 = image[::2, ::2, :]

plt.imshow(image10)

image10.shape

(219, 350, 3)

?

相关文章
|
1月前
|
数据采集 机器学习/深度学习 存储
【机器学习】数据清洗——基于Numpy库的方法删除重复点
【机器学习】数据清洗——基于Numpy库的方法删除重复点
71 1
|
4月前
|
Python
NumPy生成数组的方法
NumPy生成数组的方法
|
5月前
|
数据挖掘 索引 Python
【Python】数据分析:numpy的常用方法
【Python】数据分析:numpy的常用方法
43 0
|
2天前
|
搜索推荐 数据挖掘 数据处理
NumPy数组统计与排序方法全览
【4月更文挑战第17天】本文介绍了NumPy在Python中的数组统计和排序功能。主要包括计算平均值、标准差和方差的`np.mean()`, `np.std()`, `np.var()`方法,以及求最大值、最小值、百分位数的功能。在排序方面,讲解了基本排序的`np.sort()`,获取排序索引的`np.argsort()`,逆序排序和随机排序的方法。这些工具对于数据分析和科学计算十分实用,能有效提升数据处理效率。
|
4月前
|
Python
Python21day学习---numpy生成数组的若干方法----day19
Python21day学习---numpy生成数组的若干方法----day19
34 0
|
10月前
|
数据挖掘 Python
【重磅收藏】numpy生成实数序列方法汇总
【重磅收藏】numpy生成实数序列方法汇总
76 0
|
10月前
|
存储 C++ 索引
|
Python
numpy重新学习系列(3)---如何创建一个array-四种从其他形式转化成array的方法
numpy重新学习系列(3)---如何创建一个array-四种从其他形式转化成array的方法
109 0
|
Python
numpy标准化数据的一个方法(belief[hallway ==1] *= 3)
numpy标准化数据的一个方法(belief[hallway ==1] *= 3)
43 0
|
存储 数据挖掘 C语言
Numpy温习函数方法
Numpy温习函数方法
134 0
Numpy温习函数方法