Numpy模块和matplotlib模块结合使用 实现图片裁剪、旋转、九宫格效果

Numpy模块和matplotlib模块结合使用 实现图片裁剪、旋转、九宫格效果

外部图片加载到数组中

首先导入matplotlib模块:

import matplotlib.pyplot as plt
img_arr=plt.imread('./1.jpg') #将外部图片读取 返回的是一个三维的数组
plt.imshow(img_arr)  #将数组中的数据进行图像展示

图片会被显示在坐标系中,参考:

Numpy模块和matplotlib模块结合使用 实现图片裁剪、旋转、九宫格效果

图片的数组进行修改,然后展示图片:

plt.imshow(img_arr-100) # 将数组中的每一个数组元素都减去100

这是你会发现图片发生了变化,因为我们修改了图片的数值。

练习:对刚才的图片进行左右翻转(列倒置即可):

plt.imshow(img_arr[:,::-1])

练习:对刚才的图片进行上下翻转(行倒置即可):

plt.imshow(img_arr[::-1,:])

上下左右颜色翻转:

plt.imshow(img_arr[::-1,::-1,::-1])

图片剪裁,将美女的头部剪切下来(对数值进行切片操作):

plt.imshow(img_arr[50:350,250:480,:])

效果如图:

Numpy模块和matplotlib模块结合使用 实现图片裁剪、旋转、九宫格效果

实现九宫格,这里使用一张图片拼接,你可以使用九张图片(先横向拼接,然后纵向拼接):

img_arr=plt.imread('./1.jpg') #将外部图片读取 返回的是一个三维的数组
arr_3=np.concatenate((img_arr,img_arr,img_arr),axis=1) #水平拼接
arr_9=np.concatenate((arr_3,arr_3,arr_3),axis=0)
plt.imshow(arr_9) 

效果图:

Numpy模块和matplotlib模块结合使用 实现图片裁剪、旋转、九宫格效果
分享到 :

发表评论

登录... 后才能评论