Match Image Histograms
Match Image Histograms
Perform histogram matching between two images.
img1 = [image]; img2 = [image];𝒟1s = Map[HistogramDistribution[Flatten[#], 256]&, ImageData[img1, Interleaving -> False]];
𝒟2s = Map[HistogramDistribution[Flatten[#], 256]&, ImageData[img2, Interleaving -> False]];
{Tred, Tgreen, Tblue} = MapThread[FunctionInterpolation[InverseCDF[#1, CDF[#2, x]], {x, 0, 1}, AccuracyGoal -> 1]&, {𝒟1s, 𝒟2s}];
res = ImageApply[{Tred[#[[1]]], Tgreen[#[[2]]], Tblue[#[[3]]]}&, img2];
ImageAssemble[{ImageCompose[img2, ImageResize[img1, Scaled[.35]], {Left, Bottom}, {Left, Bottom}], res}]