I want to color grayscale images and infrared images. I am looking for the best algorithm. Compete accuracy and quality of coloring is needed, as well as speed.
If your greyscale images are byte, short or integer (not too many bits though), create a LookUpTable of the color-scheme you want (e.g. rainbow or sepia). As long as the RGB triplets in your LUT are all different, you can call looking up the grey-value pixels 'accurate'. It is certainly fast.
If your greyscale images are float or double, you need to bin them. 'Accuracy' depends on your bin-size; speed is somewhat less.
What do you mean? Do you mean "making up plausible coloration where no information exists in the image"? (like "colorization" sometimes performed on old B&W movies.) Or do you simply mean you have B&W and IR images and want to combine them into a single coded image? (This latter is quite trivial - or do you mean that your B&W and IR images are not already congruent?)