边界填充
先设置上下左右的边界宽度(全部设为50)
top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)
使用copyMakeBorder函数进行边界填充
5个参数分别为图像值、上下左右宽度和填充方法
填充方法
- BORDER_REPLICATE: 复制法,也就是复制最边缘像素
- BORDER_REFLECT: 反射法,对感兴趣的图像中的像素在两边进行复制例如: fedcbalabcdefghlhgfedcb
- BORDER_REFLECT_101: 反射法,也就是以最边缘像素为轴,对称gfedcblabcdefghlgfedcba
- BORDER_WRAP:外包装法:cdefghlabcdefghlabcdefg
- BORDER_CONSTANT: 常量法,常数值填充
代码
replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE) #复制法
reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT) #反射法
reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101) #反射法
wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP) #外包装法
constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_CONSTANT, value=0) #常量法
show.cv_show('image', replicate)
show.cv_show('image', reflect)
show.cv_show('image', reflect101)
show.cv_show('image', wrap)
show.cv_show('image', constant)
BORDER_REPLICATE: 复制法
BORDER_REFLECT: 反射法
BORDER_REFLECT_101: 反射法
BORDER_WRAP:外包装法
BORDER_CONSTANT: 常量法(取0)