我正在拼接多张图片,我想改善它们之间的颜色过渡。这是两张图片:
这是拼接的图像:
您可能会看到,颜色过渡非常差。我想让它们看起来像是相同的图像(或至少接近)
我目前的做法:
我首先使用 filter2D
移除接缝,然后使用拉普拉斯变换获得图像连接点的掩码,并使用这个掩码,我像这样进行修复:
接缝去除:
kernel = np.ones((5,5),np.float32)/25
seam_removal = cv2.filter2D(data_map,-1,kernel)
这是我获得的图像连接点的 mask ,并使用它在稍微膨胀后进行修复:
但正如您在最终图像中看到的那样,这根本不会改善混合效果。
最佳答案
我不知道这是否是个好主意,但我认为你可以使用 Kmeans “调整”图像的颜色。
首先,您将图像转换为RGB
image= cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
其次,用Kmeans算法训练第一张图片,找出“簇色”
clt = KMeans(n_clusters = 20)
clt.fit(img1)
colors = clt.cluster_centers_
第三种,利用步骤2中找到的簇色对图2中的颜色进行转换。可以引用这个tutorial .
最后,将两张图片合二为一。
我还有第二种方法,那就是你可以将两个图像的色调更改为相同的色调。你可以看看 here .
关于python - 如何减少拼接图像之间的颜色差异以实现平滑的颜色过渡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37509013/