基于 OpenCV 的图像融合
- 步骤1—图像导入
- 步骤2—调整图像大小
- 步骤3—融合图像
- 步骤4—导出结果
import cv2
'''
图片读取
img = cv2.imread(filepath,flags)
参数:
filepath:要读入图片的完整路径
flags:读入图片的标志
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道
cv2.IMREAD_GRAYSCALE:读入灰度图片
cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道
注意:cv2.imread()读进来直接是BGR,格式数据格式在0~255,不是我们最常见的RGB格式。
'''
步骤1 —图像导入
bg = cv2.imread('images/background.jpg', cv2.IMREAD_COLOR)
fg = cv2.imread('images/foreground.png', cv2.IMREAD_COLOR)
background.jpg foreground.png
步骤2-调整图像大小
print(bg.shape)
print(fg.shape)
'''
scr:原始图像
dsize:输出图像的尺寸(元组方式)
dst:输出图像
fx:沿水平轴缩放的比例因子
fy:沿垂直轴缩放的比例因子
interpolation:插值方法,有5种插值方法
'''
dim = (1200, 800)
resized_bg = cv2.resize(bg, dim, interpolation=cv2.INTER_AREA)
resized_fg = cv2.resize(fg, dim, interpolation=cv2.INTER_AREA)
print(resized_bg.shape)
print(resized_bg.shape)
步骤3-融合图像
blend = cv2.addWeighted(resized_bg, 0.5, resized_fg, 0.8, 0.0)
步骤4-导出结果
cv2.imwrite('images/blended.png', blend)
blend = cv2.imread('blended.png')
cv2.imshow('blend', blend)
cv2.waitKey(0)
blended.png 参考链接: https://blog.csdn.net/qq_42722197/article/details/111189516
|