图像根据mask拼接时,边缘有色差 解决

import numpy as np import cv2 # 假设 img1, img2 是两个待拼接的图像,mask 是拼接的掩码 def feathering(img1, img2, mask, feather_width=10): # 创建一个渐变 mask gradient = np.zeros_like(mask, dtype=np.float32) rows, cols = mask.shape[:2] # 生成渐变效果 for i in range(rows): for j in range(cols): # 计算当前点与边界的距离 dist = min(i, j, rows-i-1, cols-j-1) gradient[i, j] = max(0, 1 - dist / feather_width) # 对图像进行加权平均 blended = cv2.addWeighted(img1, gradient, img2, 1 - gradient, 0) return blended
上一篇:CSS系列(21)-- Houdini 详解