Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >填充图画图片_脂肪填充失败

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

作者头像
全栈程序员站长
发布于 2022-09-22 13:07:33
发布于 2022-09-22 13:07:33
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

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

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

##对一维数组的填充

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python numpy 图片 pad 参数详解
'constant', 'edge', 'linear_ramp', 'maximum', 'mean', 'median', 'minimum', 'reflect', 'symmetric', 'wrap', 'empty'
不被定义的云
2022/05/15
4750
python numpy教程_python读取图片尺寸
‘constant’, ‘edge’, ‘linear_ramp’, ‘maximum’, ‘mean’, ‘median’, ‘minimum’, ‘reflect’, ‘symmetric’, ‘wrap’, ‘empty’ 光看文档不太好理解,因为在网上找不到详细的例子,所以我就自己动手做了一个例子。 如果觉得有收获,欢迎收藏小店哦,感谢<||>
全栈程序员站长
2022/09/22
5820
python numpy教程_python读取图片尺寸
TensorFlow2.0(4):填充与复制
tf.pad函数主要是用来对tensor的大小进行扩展,包括水平、垂直、深度(通道)等,方法定义如下:
统计学家
2019/12/23
8330
numpy 插值
第二个参数是需要pad的值,参数输入方式为:((before_1, after_1), … (before_N, after_N)),其中(before_1, after_1)表示第1轴两边缘分别填充before_1个和after_1个数值;
全栈程序员站长
2022/09/22
7150
numpy 插值
NumPy进阶80题完整版|附Notebook版本下载
大家好,NumPy进阶修改80题现在已经全部更新完毕,80道习题涵盖了NumPy中数组创建、访问、筛选、修改、计算等常用操作,如果不熟悉NumPy的读者可以刷一遍,因为里面的代码大多拿走就能用,所以如果你已经了解NumPy的基本操作,我更建议将这80题当成速查手册使用,随用随查!本文共分为两个部分:
刘早起
2020/07/23
2.4K0
NumPy进阶80题完整版|附Notebook版本下载
Numpy中的填充,np.pad()
在卷积神经网络中,为了避免因为卷积运算导致输出图像缩小和图像边缘信息丢失,常常采用图像边缘填充技术,即在图像四周边缘填充0,使得卷积运算后图像大小不会缩小,同时也不会丢失边缘和角落的信息。在Python的numpy库中,常常采用numpy.pad()进行填充操作,具体分析如下:
种花家的奋斗兔
2020/11/13
2K0
Numpy中的填充,np.pad()
项目笔记 LUNA16-DeepLung:(二)肺结节检测
在前面进行了肺结节数据的预处理之后,接下来开始进入肺结节检测环节。首先附上该项目的Github链接:https://github.com/Minerva-J/DeepLung。
Minerva
2020/05/25
3.7K5
Numpy70题,由浅入深!
NumPy(Numerical Python)是Python的一个开源的数值计算扩展,它提供了高效的多维数组对象ndarray,以及大量的数学函数库,用于处理大型矩阵和数组运算。
皮大大
2024/06/04
2220
matlab如何批量读取图片_nu(n)*nu(n)卷积
有一张RGB的图像,我们要在这个图像的周围加上填充元素,使得这个图像不会再卷积操作后导致边缘信息丢失和图像尺寸的减小。
全栈程序员站长
2022/09/22
6550
matlab如何批量读取图片_nu(n)*nu(n)卷积
python学习:numpy100道题
NumPy(Numeric Python)系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。 NumPy提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。
Max超
2020/01/16
1.7K0
numpy 100题练习 <一>
This is a collection of exercises that have been collected in the numpy mailing list, on stack overflow and in the numpy documentation. The goal of this collection is to offer a quick reference for both old and new users but also to provide a set of exercises for those who teach. 这是在stackoverflow和numpy文档里汇总的numpy练习题,目的是为新老用户提供快速参考。
派大星的数据屋
2022/04/02
8460
paddle tensorflow_平板屏保图片
实际使用注意,参数paddings元素数(rank)必须和输入维度一一对应,表示该维度前后填充的层数,文档示例验证如下,
全栈程序员站长
2022/09/22
6280
100个Numpy练习【1】
Numpy是Python做数据分析必须掌握的基础库之一,非常适合刚学习完Numpy基础的同学,完成以下习题可以帮助你更好的掌握这个基础库。
YingJoy_
2018/03/01
2.3K0
100个Numpy练习【1】
Numpy基础知识回顾
由于NumPy提供了一个简单易用的C API,因此很容易将数据传递给由低级语言编写的外部库,外部库也能以NumPy数组的形式将数据返回给Python。这个功能使Python成为一种包装C/C++/Fortran历史代码库的选择,并使被包装库拥有一个动态的、易用的接口。
timerring
2023/05/07
2.2K0
Numpy基础知识回顾
Convolutional Neural Networks: Step by Step
我们主要基于numpy实现 convolutional (CONV) and pooling (POOL) layers ,包括前向传播和反向传播。
小飞侠xp
2018/08/29
8020
tf.pad
pad一个张量。 这个操作根据指定的paddings填充一个tensor。padding是一个形状为[n, 2]的整数张量,其中n是张量的秩。对于输入的每个维度D,paddings[D, 0]表示在该维度tensor的内容之前要添加多少个值,paddings[D, 1]表示在该维度张量的内容之后要添加多少个值。如果mode是“REFLECT”,那么paddings[D, 0]和paddins[D, 1]必须不大于tensor.dim_size(D) - 1。如果mode是“SYMMETRIC”,那么paddings[D, 0]和paddings[D, 1]必须不大于tensor.dim_size(D)。
狼啸风云
2019/06/25
1.3K0
tf.pad
04.卷积神经网络 W1.卷积神经网络(作业:手动/TensorFlow 实现卷积神经网络)
0 padding 会在图片周围填充 0 元素(下图 p = 2 p=2 p=2 )
Michael阿明
2021/02/19
9720
一步步构建卷积模型
在这个编程练习中,我们将使用numpy实现卷积(CONV)层和池化(POOL)层。
云水木石
2019/07/01
5830
一步步构建卷积模型
使用numpy计算分子内坐标
当我们打开一个用于表示分子构象的xyz文件或者pdb文件,很容易可以理解这种基于笛卡尔坐标的空间表征方法。但是除了笛卡尔坐标表示方法之外,其实也有很多其他的方法用于粗粒化或者其他目的的表征方法,比如前一篇文章中所介绍的在AlphaFold2中所使用的残基的刚体表示方法。而这种刚体坐标,在本质上来说也是一种特殊的分子内坐标表示方法,因为对于每一个残基而言只有旋转和平移的自由度,而残基内部是保持互相之间相对静止的。换句话说,每一个残基的内坐标是保持不变的,本文主要介绍分子的内坐标表示方法。
DechinPhy
2023/07/09
3300
使用numpy计算分子内坐标
初探Numpy中的花式索引
Numpy中对数组索引的方式有很多(为了方便介绍文中的数组如不加特殊说明指的都是Numpy中的ndarry数组),比如:
触摸壹缕阳光
2020/04/08
2.4K0
初探Numpy中的花式索引
相关推荐
python numpy 图片 pad 参数详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验