景区网站建设方案 费用,上海个人网站建设,网络编程培训,青岛seo服务哪家好目录 边界填充需要知道的两个东西什么算边界边界的范围是多少举例 复制填充反射法反射101法外包装法数值填充法原图代码最终效果 边界填充需要知道的两个东西
什么算边界
顾名思义#xff1a;就是图片的最外边
边界的范围是多少
根据你自己的需要而设置
举例
这里我选择… 目录 边界填充需要知道的两个东西什么算边界边界的范围是多少举例 复制填充反射法反射101法外包装法数值填充法原图代码最终效果 边界填充需要知道的两个东西
什么算边界
顾名思义就是图片的最外边
边界的范围是多少
根据你自己的需要而设置
举例
这里我选择 (50,50,50,50) 就是上下左右这四个方向进行了填充填充50个像素 如图上面就是选出所需要填充的范围这里选择50个像素 这就是一种填充顾名思义按离着边界最近的颜色块的颜色进行填充
复制填充
复制边界线的颜色填充 注意是边界线的颜色也就是一个像素
反射法
顾名思义这个方法就是对称轴复制法 注意这个反射法反射对称轴也就是会复制对称轴
反射101法 注意这个反射101法不会反射对称轴也就是不会复制对称轴 和反射法的区别就在于是否复制对称轴
外包装法 外包装是按图像的离边界的顺序填充的将边界外的像素视为图像的另一侧
数值填充法 在图片的四周填上指定的颜色
原图 代码
import cv2def img_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)cv2.destroyAllWindows()img cv2.imread(enhanced_color_rgb.jpg)print(img is shape:, img.shape)# 定义上下左右各边的像素数
top_size, bottom_size, left_size, right_size (50, 50, 50, 50)# 创建不同类型的边界
# 使用复制边界类型将边界的最外侧像素行或列进行复制
replicate cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderTypecv2.BORDER_REPLICATE)
# 使用反射边界类型将边界外的像素进行镜像反射包括边界像素
reflect cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderTypecv2.BORDER_REFLECT)
# 使用反射101边界类型将边界外的像素进行镜像反射不包括最外侧的边界像素
reflect_101 cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderTypecv2.BORDER_REFLECT_101)
# 使用环绕边界类型将边界外的像素视为图像的另一侧
wrap cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderTypecv2.BORDER_WRAP)
# 使用常数边界类型用指定的常数值填充边界外的像素
constant cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderTypecv2.BORDER_CONSTANT,value0)BORDER_REPLICATE 复制法 将边界的最外侧像素行或列进行复制 a|abcdef|fBORDER_REFLECT 反射法 将边界外的像素进行镜像反射包括边界像素 bcdefa|abcdef|fedcbaBORDER_REFLECT_101 反射101 将边界外的像素进行镜像反射不包括最外侧的边界像素 bcdef|abcdef|edcbaBORDER_WRAP 外包装 将边界外的像素视为图像的另一侧 abcdef|abcdef|abcdefBORDER_CONSTANT 数值 用指定的常数值填充边界外的像素 0|abcdef|0
import matplotlib.pyplot as plt# 使用matplotlib显示原始图像和带有不同边界的图像
plt.figure(figsize(10, 6))labels [Original, Replicate, Reflect, Reflect 101, Wrap, Constant]
img_list [img, replicate, reflect, reflect_101, wrap, constant]for index in range(6):ax plt.subplot(230 index 1) # 创建子图plt.imshow(img_list[index]) # 显示图像plt.title(labels[index]) # 设置标题# # 设置 x 轴和 y 轴的刻度间隔为50# ax.set_xticks(range(0, img_list[index].shape[1], 50))# ax.set_yticks(range(0, img_list[index].shape[0], 50))# 调整子图间距使其显示得更清晰
plt.tight_layout()# 显示图像
plt.show()最终效果 源码资料获取 · 技术与交流