前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >填充图画图片_脂肪填充失败

填充图画图片_脂肪填充失败

作者头像
全栈程序员站长
发布2022-09-22 21:07:33
1.4K0
发布2022-09-22 21:07:33
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

#图片处理-填充图片-numpy.pad 参考博客1 参考博客2 np.pad() 常用于深度学习中的数据预处理(例如用于图片处理中填充图片),可以将numpy数组按指定的方法填充成指定的形状。

##对一维数组的填充

代码语言:javascript
复制
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用原数组后面的值填充前面,前面的值填充后面 也可以有其他自定义的填充方法

##对二维数组的填充

代码语言:javascript
复制
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) ##对多维数组的填充

代码语言:javascript
复制
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]

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170274.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档