cv2.warpPerspective生成的图像边缘不平整

img

我想将这张图片的指定区域替换为另一张图片,采用 cv2.warpPerspective出现这个现象

img


# 原定区域的四个点坐标
original_points = refPt

# 计算选定区域的宽度和高度
selected_width = int(max(original_points[1][0] - original_points[0][0], original_points[2][0] - original_points[3][0]))
selected_height = int(max(original_points[3][1] - original_points[0][1], original_points[2][1] - original_points[1][1]))

# 计算透视变换的源点和目标点
source_points = np.float32([[0, 0], [replacement_image.shape[1], 0], [replacement_image.shape[1], replacement_image.shape[0]], [0, replacement_image.shape[0]]])
target_points = np.float32([[original_points[0][0], original_points[0][1]], [original_points[1][0], original_points[1][1]], [original_points[2][0], original_points[2][1]], [original_points[3][0], original_points[3][1]]])

# 计算透视变换矩阵
M = cv2.getPerspectiveTransform(source_points, target_points)

# 对缩放后的替换图像进行透视变换
warped_image = cv2.warpPerspective(replacement_image, M, (image.shape[1], image.shape[0]))

warped_image 这一步的图像边框就一条一条的

提高图片分辨率

沿边缘模糊处理