大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
#图片处理-填充图片-numpy.pad
参考博客1
参考博客2
np.pad() 常用于深度学习中的数据预处理(例如用于图片处理中填充图片),可以将numpy数组按指定的方法填充成指定的形状。
##对一维数组的填充
import numpy as np
arr1D = np.array([1, 1, 2, 2, 3, 4])
'''不同的填充方法'''
print ('constant: ' + str(np.pad(arr1D, (2, 3), 'constant')))
print ('edge: ' + str(np.pad(arr1D, (2, 3), 'edge')))
print ('linear_ramp: ' + str(np.pad(arr1D, (2, 3), 'linear_ramp')))
print ('maximum: ' + str(np.pad(arr1D, (2, 3), 'maximum')))
print ('mean: ' + str(np.pad(arr1D, (2, 3), 'mean')))
print ('median: ' + str(np.pad(arr1D, (2, 3), 'median')))
print ('minimum: ' + str(np.pad(arr1D, (2, 3), 'minimum')))
print ('reflect: ' + str(np.pad(arr1D, (2, 3), 'reflect')))
print ('symmetric: ' + str(np.pad(arr1D, (2, 3), 'symmetric')))
print ('wrap: ' + str(np.pad(arr1D, (2, 3), 'wrap')))
constant: [0 0 1 1 2 2 3 4 0 0 0]
edge: [1 1 1 1 2 2 3 4 4 4 4]
linear_ramp: [0 0 1 1 2 2 3 4 3 1 0]
maximum: [4 4 1 1 2 2 3 4 4 4 4]
mean: [2 2 1 1 2 2 3 4 2 2 2]
median: [2 2 1 1 2 2 3 4 2 2 2]
minimum: [1 1 1 1 2 2 3 4 1 1 1]
reflect: [2 1 1 1 2 2 3 4 3 2 2]
symmetric: [1 1 1 1 2 2 3 4 4 3 2]
wrap: [3 4 1 1 2 2 3 4 1 1 2]
###参数解释:
第一个参数是待填充数组
第二个参数是填充的形状,(2,3)表示前面两个,后面三个
第三个参数是填充的方法
###填充方法:
constant连续一样的值填充,有关于其填充值的参数。constant_values=(x, y)时前面用x填充,后面用y填充。缺参数是为0。
edge用边缘值填充
linear_ramp边缘递减的填充方式
maximum, mean, median, minimum分别用最大值、均值、中位数和最小值填充
reflect, symmetric都是对称填充。前一个是关于边缘对称,后一个是关于边缘外的空气对称╮(╯▽╰)╭
wrap用原数组后面的值填充前面,前面的值填充后面
也可以有其他自定义的填充方法
##对二维数组的填充
import numpy as np
Matrix = np.arange(1,7).reshape(2,3)
M = np.pad(Matrix,((1,1),(1,2)),'constant',constant_values = (0,0))
print(M)
[[0 0 0 0 0 0]
[0 1 2 3 0 0]
[0 4 5 6 0 0]
[0 0 0 0 0 0]]
[Finished in 0.2s]
np.pad(Matrix,((1,1),(1,2)),‘constant’,constant_values = (0,0))
表示在二维数组Matrix的边缘填充constant_values指定的数值
(1,1)表示在Matrix的第[0]轴填充(二维数组中,0轴表示行),即在0轴前面填充1个宽度的0,比如数组Matrix中的1,2,3两个元素前面各填充了一行0,在4,5,6下面填充了一行0。
(1,2)表示在Matrix的第[1]轴填充(二维数组中,1轴表示列),即在1轴前面填充1个宽度的0,后面填充2个宽度的0
constant_values表示填充值,且(axis0,axis1)的填充值等于(0,0)
##对多维数组的填充
import numpy as np
arr3D = np.array([[[1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4]],
[[0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5]],
[[1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4], [1, 1, 2, 2, 3, 4]]])
print ('constant: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'constant')))
print ('edge: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'edge')))
print ('linear_ramp: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'linear_ramp')))
print ('maximum: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'maximum')))
print ('mean: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'mean')))
print ('median: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'median')))
print ('minimum: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'minimum')))
print ('reflect: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'reflect')))
print ('symmetric: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'symmetric')))
print ('wrap: \n' + str(np.pad(arr3D, ((0, 0), (1, 1), (2, 2)), 'wrap')))
constant:
[[[0 0 0 0 0 0 0 0 0 0]
[0 0 1 1 2 2 3 4 0 0]
[0 0 1 1 2 2 3 4 0 0]
[0 0 1 1 2 2 3 4 0 0]
[0 0 0 0 0 0 0 0 0 0]]
[[0 0 0 0 0 0 0 0 0 0]
[0 0 0 1 2 3 4 5 0 0]
[0 0 0 1 2 3 4 5 0 0]
[0 0 0 1 2 3 4 5 0 0]
[0 0 0 0 0 0 0 0 0 0]]
[[0 0 0 0 0 0 0 0 0 0]
[0 0 1 1 2 2 3 4 0 0]
[0 0 1 1 2 2 3 4 0 0]
[0 0 1 1 2 2 3 4 0 0]
[0 0 0 0 0 0 0 0 0 0]]]
edge:
[[[1 1 1 1 2 2 3 4 4 4]
[1 1 1 1 2 2 3 4 4 4]
[1 1 1 1 2 2 3 4 4 4]
[1 1 1 1 2 2 3 4 4 4]
[1 1 1 1 2 2 3 4 4 4]]
[[0 0 0 1 2 3 4 5 5 5]
[0 0 0 1 2 3 4 5 5 5]
[0 0 0 1 2 3 4 5 5 5]
[0 0 0 1 2 3 4 5 5 5]
[0 0 0 1 2 3 4 5 5 5]]
[[1 1 1 1 2 2 3 4 4 4]
[1 1 1 1 2 2 3 4 4 4]
[1 1 1 1 2 2 3 4 4 4]
[1 1 1 1 2 2 3 4 4 4]
[1 1 1 1 2 2 3 4 4 4]]]
linear_ramp:
[[[0 0 0 0 0 0 0 0 0 0]
[0 0 1 1 2 2 3 4 2 0]
[0 0 1 1 2 2 3 4 2 0]
[0 0 1 1 2 2 3 4 2 0]
[0 0 0 0 0 0 0 0 0 0]]
[[0 0 0 0 0 0 0 0 0 0]
[0 0 0 1 2 3 4 5 2 0]
[0 0 0 1 2 3 4 5 2 0]
[0 0 0 1 2 3 4 5 2 0]
[0 0 0 0 0 0 0 0 0 0]]
[[0 0 0 0 0 0 0 0 0 0]
[0 0 1 1 2 2 3 4 2 0]
[0 0 1 1 2 2 3 4 2 0]
[0 0 1 1 2 2 3 4 2 0]
[0 0 0 0 0 0 0 0 0 0]]]
maximum:
[[[4 4 1 1 2 2 3 4 4 4]
[4 4 1 1 2 2 3 4 4 4]
[4 4 1 1 2 2 3 4 4 4]
[4 4 1 1 2 2 3 4 4 4]
[4 4 1 1 2 2 3 4 4 4]]
[[5 5 0 1 2 3 4 5 5 5]
[5 5 0 1 2 3 4 5 5 5]
[5 5 0 1 2 3 4 5 5 5]
[5 5 0 1 2 3 4 5 5 5]
[5 5 0 1 2 3 4 5 5 5]]
[[4 4 1 1 2 2 3 4 4 4]
[4 4 1 1 2 2 3 4 4 4]
[4 4 1 1 2 2 3 4 4 4]
[4 4 1 1 2 2 3 4 4 4]
[4 4 1 1 2 2 3 4 4 4]]]
mean:
[[[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]]
[[2 2 0 1 2 3 4 5 2 2]
[2 2 0 1 2 3 4 5 2 2]
[2 2 0 1 2 3 4 5 2 2]
[2 2 0 1 2 3 4 5 2 2]
[2 2 0 1 2 3 4 5 2 2]]
[[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]]]
median:
[[[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]]
[[2 2 0 1 2 3 4 5 2 2]
[2 2 0 1 2 3 4 5 2 2]
[2 2 0 1 2 3 4 5 2 2]
[2 2 0 1 2 3 4 5 2 2]
[2 2 0 1 2 3 4 5 2 2]]
[[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]
[2 2 1 1 2 2 3 4 2 2]]]
minimum:
[[[1 1 1 1 2 2 3 4 1 1]
[1 1 1 1 2 2 3 4 1 1]
[1 1 1 1 2 2 3 4 1 1]
[1 1 1 1 2 2 3 4 1 1]
[1 1 1 1 2 2 3 4 1 1]]
[[0 0 0 1 2 3 4 5 0 0]
[0 0 0 1 2 3 4 5 0 0]
[0 0 0 1 2 3 4 5 0 0]
[0 0 0 1 2 3 4 5 0 0]
[0 0 0 1 2 3 4 5 0 0]]
[[1 1 1 1 2 2 3 4 1 1]
[1 1 1 1 2 2 3 4 1 1]
[1 1 1 1 2 2 3 4 1 1]
[1 1 1 1 2 2 3 4 1 1]
[1 1 1 1 2 2 3 4 1 1]]]
reflect:
[[[2 1 1 1 2 2 3 4 3 2]
[2 1 1 1 2 2 3 4 3 2]
[2 1 1 1 2 2 3 4 3 2]
[2 1 1 1 2 2 3 4 3 2]
[2 1 1 1 2 2 3 4 3 2]]
[[2 1 0 1 2 3 4 5 4 3]
[2 1 0 1 2 3 4 5 4 3]
[2 1 0 1 2 3 4 5 4 3]
[2 1 0 1 2 3 4 5 4 3]
[2 1 0 1 2 3 4 5 4 3]]
[[2 1 1 1 2 2 3 4 3 2]
[2 1 1 1 2 2 3 4 3 2]
[2 1 1 1 2 2 3 4 3 2]
[2 1 1 1 2 2 3 4 3 2]
[2 1 1 1 2 2 3 4 3 2]]]
symmetric:
[[[1 1 1 1 2 2 3 4 4 3]
[1 1 1 1 2 2 3 4 4 3]
[1 1 1 1 2 2 3 4 4 3]
[1 1 1 1 2 2 3 4 4 3]
[1 1 1 1 2 2 3 4 4 3]]
[[1 0 0 1 2 3 4 5 5 4]
[1 0 0 1 2 3 4 5 5 4]
[1 0 0 1 2 3 4 5 5 4]
[1 0 0 1 2 3 4 5 5 4]
[1 0 0 1 2 3 4 5 5 4]]
[[1 1 1 1 2 2 3 4 4 3]
[1 1 1 1 2 2 3 4 4 3]
[1 1 1 1 2 2 3 4 4 3]
[1 1 1 1 2 2 3 4 4 3]
[1 1 1 1 2 2 3 4 4 3]]]
wrap:
[[[3 4 1 1 2 2 3 4 1 1]
[3 4 1 1 2 2 3 4 1 1]
[3 4 1 1 2 2 3 4 1 1]
[3 4 1 1 2 2 3 4 1 1]
[3 4 1 1 2 2 3 4 1 1]]
[[4 5 0 1 2 3 4 5 0 1]
[4 5 0 1 2 3 4 5 0 1]
[4 5 0 1 2 3 4 5 0 1]
[4 5 0 1 2 3 4 5 0 1]
[4 5 0 1 2 3 4 5 0 1]]
[[3 4 1 1 2 2 3 4 1 1]
[3 4 1 1 2 2 3 4 1 1]
[3 4 1 1 2 2 3 4 1 1]
[3 4 1 1 2 2 3 4 1 1]
[3 4 1 1 2 2 3 4 1 1]]]
[Finished in 0.2s]
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170274.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...