Calibration experiment
I took a scanned photo; an HP DeskJet 820Cse inkjet printer; an Olympus C-3030Z digital camera; a Umax Astra 600S scanner; and a NEC FE1250 monitor and compared their colors as follows.
The monitor is casually calibrated for good black/white points, and there seems to be a gamma of about 2.3 between application color value and monitor output. I created 16-point gamma curves for R, G, and B for the printer by comparing printed colors and screen colors. I imagine I did a horrible job. The scanner and camera are not calibrated past whatever their Linux drivers do by default.
In this demo picture, I took a scanned photograph that looked good on the screen and printed it out. Then I scanned the print, photographed the print, and photographed the monitor. I quickly adjusted the black/gamma/white points of the scan and the photo of the scan. Those adjustments are shown to the right of their raw sources.