copyMakeBorder
时间: 2023-10-10 14:11:45 浏览: 51
copyMakeBorder函数是OpenCV中的一个函数,用于将图像的边缘进行扩展或者填充。该函数可以在图像的边缘周围添加一个像素宽度的边框,也可以在边缘周围添加一个特定的像素值的边框。
该函数的语法如下:
cv2.copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]])
其中,src表示输入的图像,top、bottom、left、right表示需要在图像边缘添加的像素宽度,borderType表示边框类型,dst表示输出的图像,value表示边框的像素值。
borderType可以取以下几种值:
- cv2.BORDER_CONSTANT:添加一个常数值的边框。
- cv2.BORDER_REPLICATE:复制图像边缘的像素值。
- cv2.BORDER_REFLECT:通过镜像反射的方式填充边框。
- cv2.BORDER_WRAP:通过环绕的方式填充边框。
使用copyMakeBorder函数可以在图像边缘添加边框,从而使得图像更加美观,同时也可以在图像处理中起到一定的作用。
相关问题
CopyMakeBorder
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)
copyMakeBorder用法
copyMakeBorder是OpenCV中的一种函数,用于在图像周围添加边框。其用法如下:
cv2.copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]])
参数说明:
- src:输入图像,可以是灰度图像或彩色图像。
- top:上边框的大小。
- bottom:下边框的大小。
- left:左边框的大小。
- right:右边框的大小。
- borderType:边框类型,可以是以下几种类型之一:
- cv2.BORDER_CONSTANT:添加常数值的边框。
- cv2.BORDER_REPLICATE:复制边缘像素的边框。
- cv2.BORDER_REFLECT:反射边缘像素的边框。
- cv2.BORDER_REFLECT_101:反射边缘像素的边框,但像素值不会超出范围。
- cv2.BORDER_WRAP:环绕边缘像素的边框。
- dst:输出图像,可以为空。
- value:当边框类型为cv2.BORDER_CONSTANT时,指定添加的常数值。
示例:
```python
import cv2
img = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
border = cv2.copyMakeBorder(img, 10, 10, 10, 10, cv2.BORDER_REPLICATE)
cv2.imshow('original', img)
cv2.imshow('border', border)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行结果:
![copyMakeBorder示例](https://img-blog.csdn.net/2018051811462189?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2J1aWxkaW5nc3RvbmU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-dosexec](https://img-home.csdnimg.cn/images/20210720083343.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)