Many scientific and engineering applications require numerical methods to compute efficient and reliable solutions to inverse problems. The basic goal of an inverse problem is to compute an approximation of the original model, given observed data and knowledge about the forward model. Physical systems that require reconstruction of an unknown input signal from the measured output signal are natural examples of inverse problems. In other systems, the internal structure of an object is desired, but only measured output data is provided. The difficulty with ill-posed inverse problems is that small errors may give rise to significant errors in the computed approximations, so regularization must be used to compute stable solution approximations. Furthermore, real-life applications often require the computer to process extremely large amounts of data, and previously proposed methods for solving inverse problems are not adequate for these large-scale problems. We investigate numerical methods that can efficiently and accurately solve large-scale ill-posed inverse problems. A variety of applications from image processing are discussed, and numerical experiments illustrate the effectiveness and efficiency of the proposed approaches.