CopyMakeBorder
时间: 2024-06-18 22:04:20 浏览: 78
CopyMakeBorder是OpenCV库中的一个函数,可以用于生成一个扩展图像,即在原图像边缘上添加一个像素的边框。该函数在数字图像处理中应用广泛,例如可以用于图像边缘检测,图像金字塔等方面。下面是其函数原型和参数说明[^1]:
```python
cv2.copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]])
```
- src:输入源图像
- top:上边框大小
- bottom:下边框大小
- left:左边框大小
- right:右边框大小
- borderType:边框类型,可取值为:
- cv2.BORDER_CONSTANT:添加恒定的彩色边框
- cv2.BORDER_REFLECT:边框是镜像的,例如:fedcba|abcdefgh|hgfedcb
- cv2.BORDER_REFLECT_101:边框是镜像的,但是中心点不变,例如:gfedcb|abcdefgh|gfedcba
- cv2.BORDER_REPLICATE:复制边缘像素,例如:aaaaaa|abcdefgh|hhhhhhh
- cv2.BORDER_WRAP:将图像复制并将其水平或垂直翻转,例如:cdefgh|abcdefgh|abcdefg
- dst:输出图像
- value:当使用BORDER_CONSTANT时,value为边框颜色
下面是一个示例,其中添加了一个白色的常量边框:
```python
import cv2
import numpy as np
img = cv2.imread('lena.jpg')
top_size, bottom_size, left_size, right_size = 50, 50, 50, 50
replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_CONSTANT,value = 255)
cv2.imshow('image', img)
cv2.imshow('copyMakeBorder', replicate)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该示例的输出结果是:
![image.png](https://cdn.nlark.com/yuque/0/2021/png/97322/1611339976649-8461c32e-6f7f-4c16-9a07-0892e57e7641.png#align=left&display=inline&height=480&margin=%5Bobject%20Object%5D&name=image.png&originHeight=480&originWidth=600&size=100954&status=done&style=none&width=600)
阅读全文