2016-05-29 9 views
2

Ich nähere mehrere Bilder, und ich möchte den Farbübergang zwischen ihnen verbessern. Hier sind die beiden Bilder:Wie kann man den Farbunterschied zwischen zusammengenähten Bildern reduzieren, um einen weichen Farbübergang zu erzielen?

  1. http://imgur.com/nG5I0nr
  2. http://imgur.com/EZFzNeL

Und hier ist die genähte Bilder:

Wie Sie wahrscheinlich sehen können, die Farbe Übergang ist extrem arm. Ich mag es so aussehen, als wären sie die gleichen Bilder (oder zumindest nahe daran)

So wie ich sind momentan macht es:

ich zuerst die Naht entfernen filter2D und anschließend die Maske erhält die Punkte, wo die Bilder Laplace-Transformation join verwenden, und die Verwendung dieser Maske, ich Inpaintingvorgang wie so:

Nahtentfernung:

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

und hier bin der Maske I der Punkte erhalten, in dem die Bilder kommen, und ich benutze dies nach einer Bit der Dilatation:

Aber wie Sie im endgültigen Bild sehen können, dass das Mischungsüberhaupt nicht verbessert.

+0

Der häufigste Ansatz ist wahrscheinlich Poisson Blending (Sie können hier klicken: http: //www.learnopencv.com/seamless-cloning-using-opencv-python-cpp /) –

Antwort

0

Ich weiß nicht, ob es eine gute Idee ist oder nicht, aber ich denke, Sie können Kmeans verwenden, um die Farbe des Bildes zu "tunen".

Erste, Sie konvertieren Sie Ihre Bilder in RGB

image= cv2.cvtColor(image, cv2.COLOR_BGR2RGB) 

Zweite, trainieren das erste Bild mit Kmeans Algorithmus und der "Cluster-Farbe" herauszufinden

clt = KMeans(n_clusters = 20) 
clt.fit(img1) 
colors = clt.cluster_centers_ 

Dritte, unter Verwendung Die Cluster Farben gefunden in Schritt 2, um die Farbe in Bild 2 zu konvertieren. Sie können sich darauf beziehen tutorial.

Schließlich, kombinieren Sie einfach die beiden Bilder zu einem.

Und ich habe zweiten Ansatz, dass Sie beide Bilder Ton in den gleichen Ton ändern können. Sie können einen Blick here werfen.

Verwandte Themen