Note that this assumes that Image is expensive to copy (which for the sake of the example is probably a safe assumption).

If Image was just a single int, then it wouldn't be faster to pass a pointer. Also, if Image used some sort of shared_ptr style internal copying, then it probably wouldn't be that different either.