参考具体网站:https://www.cnblogs.com/cyt99/p/12457384.html
边缘填充:因为对于图像的卷积操作,最边缘的像素一般无法处理,所以卷积核中心到不了最边缘像素。这就需要先将图像的边界填充,再根据不同的填充算法进行卷积操作,得到的新图像就是填充后的图像。
函数原型:cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value)
import cv2
import numpy as ny
import matplotlib.pyplot as plt
image=cv2.imread('F:\opencv\image\gang.jpg')
def cv2_imshow(name,img):
cv2.imshow(name,img)
cv2.waitKey()
cv2.destroyAllWindows()
top_size,bottom_size,left_size,right_size=(100,100,100,100)
replicate=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE)#bordertype是边界类型#复制法
reflect=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT)#反射法
reflect101=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT101)
warp=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_WRAP)#外包装法
constant=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_CONSTANT,value=(0,255,0))#常量法
cv2_imshow('replicate',replicate)
cv2_imshow('reflect',reflect)
cv2_imshow('warp',warp)
cv2_imshow('reflect101',reflect101)
cv2_imshow('constant',constant)