A critical comparison of pansharpening algorithms