Is this a correct method for fixed pattern noise correction? I am currently involved in a project involving programming an imaging sensor. Our sensor is giving us noise, so we want to correct for it. Someone else on the project came up with the idea to take a "black" image i.e. put the lens cap on and take an image that is meant to be all black. (Obviously it is not due to noise) At this point on subsequent captures he takes the pixel values from the black image and subtracts them from the regularly captured image. 

The image does look better and most of the noise is removed, however I am not convinced that this is the best approach for removing the noise due to the following:

The range of the fixed image is [-172 194] (366 values), versus the standard range of [0 255]. When it is redrawn it gets ranged back to [0 255], and it does look better, however I believe this is incorrect.

I should mention that the new image is taken in low light. 

Is this method correct for removing the noise? Why or why not?
The black image is the sum of a fixed pattern and dark noise (which most likely follows a normal distribution since it usually arises from current fluctuations). You want to subtract the fixed pattern, but not the dark noise - subtracting random noise from a signal simply increases the overall noise, and thus decreases signal quality.

To get a good estimate for the fixed pattern, you should capture a sizeable number of frames (say 25, though 100 will of course leave you with only half the noise), and average them. Since the dark noise is (should be) uncorrelated in time, it averages out, so that you're left with a low-noise fixed pattern that you can subtract from your future images, and that will not increase the noise in your image. 

Note that the fixed pattern usually depends on the exposure time (a CCD camera, for example, may accumulate electrons during shift operations), thus you'll have to do a calibration for each exposure time. If you vary exposure times often, and if it's feasible, you can set up your experiment to capture a series of dark frames after each experiment, which means that you get a calibration for each experiment.

If you subtract a low-noise (i.e. averaged) dark frame, you will get some negative values (because the dark noise occurring during image acquisition can have negative values), but the range of your image should not increase significantly. If it does, it is a sign that you have either not averaged enough dark frames, or that the fixed pattern has changed since you're using a different exposure time.