OpenCV 边界填充(padding)

4 min read

OpenCV 中的边界填充(padding)是指在图像的边缘部分添加一些额外的像素,以便正确处理卷积等操作。常见的填充方式包括:

  1. 零填充(zero padding):在图像边缘上添加像素值为零的像素;
  2. 边缘填充(edge padding):使用图像边缘上的像素值填充边缘;
  3. 循环填充(circular padding):将图像看作是一个周期性信号,在图像边缘上使用相对位置的像素值填充边缘;
  4. 反射填充(reflect padding):将图像边缘像素的值对称复制并填充边缘。

在 OpenCV 中,可以使用函数 cv2.copyMakeBorder() 对图像进行边界填充。函数的参数解释如下:

cv2.copyMakeBorder(src, top, bottom, left, right, borderType, value)

  • src:原始图像;
  • top、bottom、left、right:上、下、左、右需要填充的像素数;
  • borderType:边界填充类型,可以取值如下:
    • cv2.BORDER_CONSTANT:常数填充,以常数填充边界像素;
    • cv2.BORDER_REPLICATE:边缘填充,使用最外层像素值填充;
    • cv2.BORDER_REFLECT:反射填充,通过水平或垂直轴对称复制;
    • cv2.BORDER_WRAP:循环填充;
  • value:当 borderType 为 cv2.BORDER_CONSTANT 时使用的常数值。