欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

OpenCV--图像边界填充

程序员文章站 2024-03-21 23:18:40
...

OpenCV–图像边界填充

语法:

cv.copyMakeBorder(img,top, bottom, left, right ,borderType)

  • img:需要填充的图像;
  • top:图像上边界需要填充的像素点;
  • bottom:图像下边界需要填充的像素点;
  • left:图像左边界需要填充的像素点;
  • right:图像右边界需要填充的像素点;
  • borderType:图像填充的方法。
    • BORDER_REPLICATE:复制法,也就是复制最边缘像素。
    • BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制例如:fedcba|abcdefgh|hgfedcb
    • BORDER_REFLECT_101:反射法,也就是以最边缘像素为轴,对称,gfedcb|abcdefgh|gfedcba
    • BORDER_WRAP:外包装法abcdefgh|abcdefgh|abcdefg
    • BORDER_CONSTANT:常量法,常数值填充,需要在设置一个value值,已显示填充的颜色。

代码示例:

#边界填充
#cv.copyMakeBorder(img,top, bottom, left, right ,borderType) 

top_size, bottom_size, left_size, right_size = (50, 50, 50, 50)

replicate = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REPLICATE)
reflect = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REFLECT)
reflect_101 = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_REFLECT_101)
wrap = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_WRAP)
constant = cv.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv.BORDER_CONSTANT)

#绘制子图
#plt.subplot(2, 3, 5) 和 plt.subplot(235) 是效果是一样的

plt.subplot(231), plt.imshow(img, 'gray'), plt.title('ORIGINAL')
plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title("REPLICATE")
plt.subplot(233), plt.imshow(reflect, 'gray'), plt.title('REFLECT')
plt.subplot(234), plt.imshow(reflect_101, 'gray'), plt.title("REFLECT_101")
plt.subplot(235), plt.imshow(wrap, 'gray'), plt.title('WRAP')
plt.subplot(236), plt.imshow(constant, 'gray'), plt.title("CONSTANT")

plt.show()

OpenCV--图像边界填充

相关标签: OpenCV