Curvelet based nonlocal means algorithm for image denoising