Maybe grayscale your original and then build a gradient with the target colors and do a gradient mapping? Gimp supports this, and I'm guessing Photoshop does something similar.