Impulse noise reduction is an active area of research in image processing. In this paper we propose a two phase scheme to detect and correct the impulse noise. In the first phase a fuzzy detection is being used, to identify pixels that are likely to be contaminated by impulse noise. In the second phase the noisy corrupted image is being subjected to a non local means filter which efficiently filter out the noisy pixels. Extensive experiments are performed to show that the proposed technique gives high performance compared to other models particularly with high noise densities. The experimental result is based on well known global as well as local quantitative measure like peak-signal-to-noise-ratio (PSNR).