opencv-python人脸识别(二)图片边界填充

图片边界填充,以及填充方法对比:

1.#复制法:复制最边缘像素

2.#反射法:对像素在两边复制 fedcba |abcdefgh |hgfedcb

3.#反射法:以最边缘像素为轴,对称 gfedcb |abcdefgh |gfedcba 比上边的反射法更连贯,少了重复连接的像素点

4.#外包装法:

5.#常量法:常数值填充

import cv2# 默认读取格式为BGR
import matplotlib.pyplot as plt
import numpy as np
#图片显示
def cv_show(name,img):
    cv2.imshow(name,img)
    #等待时间,毫秒级,0表示任意键终止
    cv2.waitKey(0)#任意键终止cv2.waitKey(1000)为显示1000ms
    cv2.destroyAllWindows()
img = cv2.imread('text-photo.jpg')
# 边界填充
top_size,bottom_size,left_size,right_size = (50,50,50,50)
# 不同填充方法
replicat = 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)#反射法:对像素在两边复制 fedcba |abcdefgh |hgfedcb
reflect101 = cv2.copyMakeBorder(img,top_size,bottom_size,left_size,right_size,cv2.BORDER_REFLECT_101)#反射法:以最边缘像素为轴,对称 gfedcb |abcdefgh |gfedcba 比上边的反射法更连贯,少了重复连接的像素点
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)#常量法:常数值填充
#绘图
plt.subplot(231)
plt.imshow(img,'gray')
plt.title('ORGINAL')

plt.subplot(232)
plt.imshow(replicat,'gray')
plt.title('REPLICATE')

plt.subplot(233)
plt.imshow(reflect,'gray')
plt.title('REFLECT')

plt.subplot(234)
plt.imshow(reflect101,'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')

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-chu_kuang-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值