BACKGROUND: Streak artifacts in computed tomography (CT) images caused by metallic objects limit the wider use of CT imaging technologies. There have been various attempts to improve CT images containing streak artifacts; however, most of them generate additional artifacts or do not completely eradicate existing artifacts. OBJECTIVE: In this paper, we propose a novel algorithm which reduces streak artifacts in CT images. METHODS: Using CT numbers reconstructed from a given sinogram, we extract the metal partM and the surrounding area C with similar CT numbers. By filling in the area C. M with the evaluated average CT number of C, we obtain a modified CT image. Using forward projection of the modified CT image, we generate a sinogram containing information about the anatomical structure. We undertake sinogram surgery to remove the metallic effects from the sinogram, after which we repeat the procedure. RESULTS: We perform numerical experiments using various simulated phantoms and patient images. For a quantitative analysis, we use the relative l(infinity) error and the relative l(2) error. In simulated phantom experiments, all l(infinity) errors and l(2) errors approach 10% and1% of the initial errors, respectively. Moreover, for the patient image simulations, all l(infinity) errors are decreased by a factor of 20 while the l(2) errors are decreased less than 5%. We observe that the proposed algorithm effectively reduces the metal artifacts. CONCLUSIONS: In this paper, we propose a metal artifact reduction algorithm based on sinogram surgery to reduce metal artifacts without additional artifacts. We also provide empirical convergence of our algorithm.