OpenCV 中的边界填充(padding)是指在图像的边缘部分添加一些额外的像素,以便正确处理卷积等操作。常见的填充方式包括:
- 零填充(zero padding):在图像边缘上添加像素值为零的像素;
- 边缘填充(edge padding):使用图像边缘上的像素值填充边缘;
- 循环填充(circular padding):将图像看作是一个周期性信号,在图像边缘上使用相对位置的像素值填充边缘;
- 反射填充(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 时使用的常数值。