在MATLAB做图像处理或深度学习数据增强时,你是不是经常遇到这样的需求:想把一张小图扩充成更大的尺寸,或者在做卷积运算前给图像边缘补上一圈像素?其实,只要熟练掌握 padarray 函数,这些操作都能一键搞定。今天我们就从最基础的语法到进阶的填充模式,手把手带你玩转MATLAB的图像与数组填充。
padarray 的核心作用非常明确,就是给数组或图像的边缘“镶边”。它的基础语法结构是:B = padarray(A, padsize, padval, direction)
这里的 A 是你的原始图像或矩阵,B 是填充后的结果。padsize 决定了你要“镶”多宽的边,通常用 [r c] 的形式表示,分别代表在行(上下)和列(左右)方向上各增加多少像素。
举个例子,如果你有一个 2x2 的矩阵 A = [1 2; 3 4],执行 padarray(A, [1 2], 0, 'both'),就会在上下各加 1 行、左右各加 2 列,并且用 0 来填充,最终得到一个 4x6 的新矩阵。

在 padarray 中,padval 参数决定了边缘补上的像素到底是什么内容。除了最基础的补 0,它还有三种非常实用的模式:
'replicate'(复制边缘):直接把图像最外圈的像素值向外复制延伸。这在处理图像边界时非常常用,能很好地保留边缘的颜色特征,避免出现突兀的黑边。'symmetric'(镜像反射):以图像的边缘为对称轴,像照镜子一样向外扩展像素。这种模式能让图像的边界过渡得非常平滑自然。'circular'(周期延拓):把图像看作一个无限重复的二维周期函数,从图像的另一侧“借”像素来填补边缘。实战中,如果你在做图像识别的数据预处理,强烈建议试试 'replicate' 或 'symmetric',往往比直接补零能带来更好的模型训练效果。
除了填充什么内容,你还可以精准控制往哪个方向填充,这就是 direction 参数的作用:
'pre':只在每一维的第一个元素前填充(比如只在图像的上方和左方加边)。'post':只在每一维的最后一个元素后填充(比如只在图像的下方和右方加边)。'both':前后都填充,这也是该参数的默认值。另外,padarray 的默认机制非常智能。如果你不写 padval,它默认用 0 填充;如果你连 direction 也不写,它默认在四周('both')进行填充。
掌握 padarray 函数的这些核心技巧,无论是做基础的图像尺寸调整,还是复杂的频域滤波预处理,都能让你的MATLAB图像处理工作事半功倍。建议大家在日常练习中多尝试不同的 padval 和 direction 组合,直观感受它们对图像边缘带来的不同变化。
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks 等。