OpenCV使用教程-图像边界填充

1、常见填充方法说明:

  • 复制法,也就是复制最边缘的像素
replicate=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_REPLICATE)
  • 反射法,54321|1234567|76543
reflect=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_REFLECT)
  • 反射法,65432|1234567|65432 以1、7为轴
reflect101=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_REFLECT_101)
  • 外包装法,34567|1234567|12345
wrap=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_WRAP)
  • 常量法,常量值填充
constant=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_CONSTANT,value=0)

2、 案例展示:

  • 声明窗口规格为(2✖️3),1表示位置为1号位
plt.subplot(2,3,1)
  • 需要展示的子图片
plt.imshow(img,'gray')
  • 设置子图片标题
plt.title('ORIGINAL')
  • 展示图片集
plt.show()

展示案例如下:

import cv2 as cv
img=cv.imread("../sources/cyq.jpg", cv.IMREAD_COLOR)
top_size,bottom_size,left_size,right_size=(50,50,50,50)
# 复制法,也就是复制最边缘的像素
replicate=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_REPLICATE)
# 反射法,54321|1234567|76543
reflect=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_REFLECT)
# 反射法,65432|1234567|65432 以1、7为轴
reflect101=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_REFLECT_101)
# 外包装法,34567|1234567|12345
wrap=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_WRAP)
# 常量法,常量值填充
constant=cv.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,borderType=cv.BORDER_CONSTANT,value=0)

import matplotlib.pyplot as plt
plt.subplot(2,3,1),plt.imshow(img,'gray'),plt.title('ORIGINAL')
plt.subplot(2,3,2),plt.imshow(replicate,'gray'),plt.title('replicate')
plt.subplot(2,3,3),plt.imshow(reflect,'gray'),plt.title('reflect')
plt.subplot(2,3,4),plt.imshow(reflect101,'gray'),plt.title('reflect101')
plt.subplot(2,3,5),plt.imshow(wrap,'gray'),plt.title('wrap')
plt.subplot(2,3,6),plt.imshow(constant,'gray'),plt.title('constant')
plt.show()

代码运行结果如下:
OpenCV使用教程-图像边界填充_第1张图片

你可能感兴趣的:(图像识别,python,opencv,计算机视觉,人工智能)