📜  cv2.copyMakeBorder (1)

📅  最后修改于: 2023-12-03 15:30:13.809000             🧑  作者: Mango

cv2.copyMakeBorder介绍

cv2.copyMakeBorder函数是OpenCV中常用的一个函数,它可以在图像的边界上添加一个固定大小的边框。该函数可以用于图像增强、图像融合等方面。

语法
cv2.copyMakeBorder(src, top, bottom, left, right, borderType [, dst [, value]])

参数说明:

  • src: 输入图像
  • top, bottom, left, right:表示在输入图像四个方向扩展的像素数
  • borderType:边框类型,该参数必须是以下的某一个:
    • cv2.BORDER_CONSTANT:添加一个常数值边框
    • cv2.BORDER_REFLECT:反射边框
    • cv2.BORDER_REFLECT_101:反射边框,相当于BORDER_REFLECT的升级版
    • cv2.BORDER_REPLICATE:复制边框
    • cv2.BORDER_WRAP:环形边框
  • dst: 输出图像,可选参数
  • value: 常数边框的颜色,可选参数
示例
import cv2

img = cv2.imread('lena.jpg', cv2.IMREAD_COLOR)

# 为图像添加一个常数值边框
constant = cv2.copyMakeBorder(img, 20, 20, 20, 20, cv2.BORDER_CONSTANT, value=[0, 0, 255])
cv2.imshow('Constant', constant)
cv2.waitKey(0)

# 为图像添加一个复制边框
replicate = cv2.copyMakeBorder(img, 20, 20, 20, 20, cv2.BORDER_REPLICATE)
cv2.imshow('Replicate', replicate)
cv2.waitKey(0)

cv2.destroyAllWindows()
输出结果

原始图像:

lena.jpg

添加了常数值边框的图像:

Constant

添加了复制边框的图像:

Replicate

通过上面的示例,你可以清楚地看到cv2.copyMakeBorder的应用效果,可以根据需要选择不同的边框类型和加框像素数。