cv::copyMakeBorder用法
时间: 2024-05-15 15:14:20 浏览: 111
cv::copyMakeBorder函数可以在图像的边缘添加边框。它有几个参数,具体如下:
```cpp
cv::copyMakeBorder(src, dst, top, bottom, left, right, borderType, value);
```
其中:
- src:输入图像
- dst:输出图像
- top、bottom、left、right:分别表示在上、下、左、右四个方向上要添加的边框像素数
- borderType:表示边框的类型,有以下几种选择:
- cv::BORDER_CONSTANT:添加常数边框,此时需要额外提供value参数,表示边框的像素值。
- cv::BORDER_REPLICATE:复制边缘像素,即将图像沿边缘的像素进行复制,直到边框像素数为止。
- cv::BORDER_REFLECT:对称复制边缘像素,即将图像沿边缘的像素进行对称复制,直到边框像素数为止。
- cv::BORDER_WRAP:环绕式边框,即将图像沿边缘的像素进行循环复制,直到边框像素数为止。
- cv::BORDER_REFLECT_101:对称复制边缘像素,但是第一个像素和最后一个像素不进行复制。
- cv::BORDER_TRANSPARENT:添加透明边框,此时需要使用alpha通道来控制透明度。
- value:当边框类型为BORDER_CONSTANT时,使用此参数指定边框像素值。
下面是一个简单的示例代码:
```cpp
cv::Mat src = cv::imread("input.jpg");
cv::Mat dst;
int top = 30, bottom = 30, left = 50, right = 50;
cv::copyMakeBorder(src, dst, top, bottom, left, right, cv::BORDER_CONSTANT, cv::Scalar(0, 0, 255));
cv::imshow("Input", src);
cv::imshow("Output", dst);
cv::waitKey(0);
```
这段代码将在输入图像的上下左右四个方向分别添加30和50个像素的蓝色边框。
阅读全文