边界填充
复制法
# 读取图片
img = cv2.imread("sqh.png")
# 填充像素
top_size = 50
bottom_size = 50
left_size = 50
right_size = 50
# Replicate (复制法)
replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
cv2.imshow("replicate", replicate)
cv2.waitKey(0)
cv2.destroyAllWindows()
上面原图,下面是操作后的图
- img: 需要填充的图像
- top: 上边界填充像素
- bottom: 下边界填充像素
- left: 左边界填充像素
- right: 右边界填充像素
- borderType: 图像填充的方法


反射法 对图像边缘像素进行反射.
reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT)
外包法 用相反位置对图片进行包裹.
wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP)
常量法 用常数值填充. 需要设置一个 value 值,代表填充的颜色
constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_CONSTANT, value=0)
图像裁剪融合
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
- src: 需要裁剪的图片
- dsize: 裁剪的大小
- fx: x 轴比例
- fy: y 轴比例
# 读取数据
photo = cv2.imread("sqh.png")
# 拉伸比例1:3
photo_resize = cv2.resize(dog, (0, 0), fx=1, fy=3)
cv2.imshow("photo", photo_resize)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像融合
cv2.addWeighted可以帮助我们融合两张图片
import cv2
# 读取数据
# 读取数据
cat = cv2.imread("cat.png")
dog = cv2.imread("dog.png")
# 输出维度
print(cat.shape)
print(dog.shape)
# 裁剪大小
dog = cv2.resize(dog, (640, 554))
cat = cv2.resize(cat, (640, 554))
print(dog.shape) # (554, 640, 3)
print(cat.shape) # (554, 640, 3)
# 图像融合
res = cv2.addWeighted(dog, 0.5, cat, 0.5, 0)
cv2.imshow("res", res)
cv2.waitKey(0)
cv2.destroyAllWindows()
要注意的是使用函数时候确保2个图片的 大小要一样

浙公网安备 33010602011771号