如何减少拼接图像之间的颜色差异,以实现平滑的颜色过渡?

时间:2016-05-29 10:53:57

标签: python opencv image-processing scipy computer-vision

我正在拼接多个图像,我想改善它们之间的颜色过渡。以下是两张图片:

  1. http://imgur.com/nG5I0nr
  2. http://imgur.com/EZFzNeL
  3. 这是缝合的图像:

    正如您可能看到的,颜色转变非常差。我想让它看起来像是相同的图像(或至少接近它)

    我目前正在这样做:

    我首先使用filter2D删除接缝,然后使用拉普拉斯变换获取图像连接点的蒙版,并使用此蒙版,我这样修复:

    去除缝线:

    kernel = np.ones((5,5),np.float32)/25
    seam_removal = cv2.filter2D(data_map,-1,kernel)
    

    这是我获得的图像连接点的掩模,使用这个我做了一些扩张后的修复:

    但是正如您在最终图像中看到的那样,这根本不会改善混合。

1 个答案:

答案 0 :(得分:0)

我不知道这是不是一个好主意,但我认为你可以使用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