如何消除图像拼接融合时产生的黑色线条伪影?
图像拼接后边缘出现黑色线条伪影问题
我近期开展了一个需拼接融合多张图像的项目,已完成所有必要步骤并成功拼接图像,但发现最终图像的各拼接块边缘出现黑色线条伪影,清晰显示出各图像的拼接位置,这些伪影一眼就能察觉。
我的图像拼接融合代码如下:
def normalize_piece(img): return cv2.normalize(img.astype('float'), None, 0.0, 1.0, cv2.NORM_MINMAX) def blend_pieces(piece1, piece2, transformation_matrix, width, height): piece1_norm = normalize_piece(piece1) piece2_norm = normalize_piece(piece2) piece1_warped = cv2.warpPerspective(src=piece1_norm, M=transformation_matrix, dsize=(width, height)) black_rgb_pixel = np.zeros(3) mask_left = np.all(piece1_warped != black_rgb_pixel, axis=-1) mask_right = np.all(piece2_norm != black_rgb_pixel, axis=-1) mask_overlap = mask_left & mask_right mask_left_only = mask_left & ~mask_right mask_right_only = mask_right & ~mask_left piece1_warped[mask_left_only] = piece1_warped[mask_left_only] piece1_warped[mask_right_only] = piece2_norm[mask_right_only] piece1_warped[mask_overlap] = (piece1_warped[mask_overlap] + piece2_norm[mask_overlap]) / 2 return piece1_warped
补充说明:我有3张待拼接的图像块,需要先拼接part1与part2,再将拼接结果与part3融合。
内容的提问来源于stack exchange,提问作者Straw User
相关产品推荐
相关产品推荐

