I just re-implemented something similar for Dreamscope that gets very similar results. If you want to do it yourself, simply convert the original and style image to HSV and create a third image like this:
[H, S, V] = RGB2HSV(original)
[H_s, S_s, V_s] = RGB2HSV(style)
result = HSV2RGB([H, S, V_s])
You can play with the algorithm on Dreamscope, just click the "Original Color" star before processing!