---
title: copyMakeBorder
description: "copyMakeBorder函数用于图像边界扩展。它可以在图像的四周添加边界，常用于数据扩充、避免边缘效应或者给图像添加装饰性边框。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0040.html
sourcePath: /source/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_kpcv_06_0040.html
indexId: 657404b8f34c849976901fa911f4008a4e4e680dd2f9806a6176b818fdb6f90977
---
# copyMakeBorder

#### 函数功能

copyMakeBorder函数用于图像边界扩展。它可以在图像的四周添加边界，常用于数据扩充、避免边缘效应或者给图像添加装饰性边框。


#### 函数接口

```
void copyMakeBorder(InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value = Scalar());
```


#### 参数

| 参数名 | 描述 | 取值范围 | 输入/输出 |
| --- | --- | --- | --- |
| src | 输入图像。 | 非空 | 输入 |
| dst | 输出图像。 | Mat类型 | 输入 |
| top | 顶部边界大小。 | (0,inf) | 输入 |
| bottom | 底部边界大小。 | (0,inf) | 输入 |
| left | 左侧边界大小。 | (0,inf) | 输入 |
| right | 右侧边界大小。 | (0,inf) | 输入 |
| borderType | 边界模式。 | BORDER\_CONSTANT BORDER\_REPLICATE BORDER\_REFLECT BORDER\_WRAP等 | 输入 |
| value | 用于填充边界的常数值（仅对BORDER\_CONSTANT有效）。 | (0,inf) | 输入 |


#### 示例

```
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;

int main() {
    // 读取图像
    Mat src = imread("input.jpg");
    if (src.empty()) {
        std::cerr << "无法加载图像!" << std::endl;
        return -1;
    }

    // 设定边界大小
    int top = 10, bottom = 10, left = 20, right = 20;

    // 扩展后的图像
    Mat dst;
    copyMakeBorder(src, dst, top, bottom, left, right, BORDER_CONSTANT, Scalar(255, 255, 255));

    // 显示结果
    imshow("原始图像", src);
    imshow("扩展后图像", dst);
    waitKey(0);

    return 0;
}
```
