import cv2
import matplotlib.pyplot as plt
imge = cv2.imread('小猫咪.jpg')
top_size,bottom_size,left_size,right_size=(50,50,50,50) #一张图是矩阵 所以得四面扩充
#复制法 也就是复制最边缘像素
replicate=cv2.copyMakeBorder(imge,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE)
#反射法 对感兴趣的图像中的像素在两边进行复制 例如 fedcba😊abcdefgh😊hgfedcb
replicate2=cv2.copyMakeBorder(imge,top_size,bottom_size,left_size,right_size,cv2.BORDER_REFLECT)
#反射法 也就是以边界像素为轴 ,对称 hgfedcb😊abcdefgh😊gfedcba
replicate101=cv2.copyMakeBorder(imge,top_size,bottom_size,left_size,right_size,cv2.BORDER_REFLECT_101)
#外包装法 CDEFGH ABCDEFGH ABCDEFG
wrap=cv2.copyMakeBorder(imge,top_size,bottom_size,left_size,right_size,cv2.BORDER_WRAP)
#常量法 常数填充
constent=cv2.copyMakeBorder(imge,top_size,bottom_size,left_size,right_size,cv2.BORDER_CONSTANT,value=0)
#plt.subplot(231)
plt.imshow('Gray',imge),plt.title('Original')
plt.subplot(232),plt.imshow(replicate,'Gray'),plt.title('Replace')
plt.subplot(233),plt.imshow(replicate2,'Gray'),plt.title('Reflect')
plt.subplot(234),plt.imshow(replicate101,'Gray'),plt.title('Reflect_101')
plt.subplot(235),plt.imshow(wrap,'Gray'),plt.title('Wrap')
plt.subplot(236),plt.imshow(constent,'Gray'),plt.title('Constent')
plt.show()
第二章:图像基本操作 4-边界填充
最新推荐文章于 2023-09-20 22:25:48 发布
这篇博客介绍了如何使用OpenCV库在Python中通过`copyMakeBorder`函数对图像进行不同类型的边界填充,包括复制法、反射法、反射101法、外包装法和常量法。通过示例代码展示了每种方法的效果,帮助读者理解这些填充方式在图像处理中的应用。
摘要由CSDN通过智能技术生成