A computer implemented method for reducing spatially correlated temporal noise, the method comprising: receiving a set of sequential image frames; determining row values for the image frames comprising scene information and noise information, wherein the row values are row mean values or row sum values; performing first spectral transforms in a first domain on corresponding subsets of the row values to determine first spectral coefficients, wherein the first domain is a spatial domain; performing second spectral transforms in a second domain on corresponding subsets of the first spectral coefficients to determine second spectral coefficients, wherein the second domain is a temporal domain; comparing the second spectral coefficients with noise spectral coefficients calculated from other image frames comprising only noise information; adjusting the second spectral coefficients that have magnitudes equal to or lower than those of corresponding noise coefficients to generate adjusted second spectral coefficients; performing reverse second spectral transforms in the second domain on corresponding subsets of the adjusted second spectral coefficients to determine adjusted first spectral coefficients; performing reverse first spectral transforms in the first domain on corresponding subsets of the adjusted first spectral coefficients to determine adjusted row values; comparing the original row values with the adjusted row values and determining row correction terms for the rows in the image frames; repeating the previous steps to for the columns of said image frames in order to obtain column correction terms for the columns in the image frames; and applying the row and column correction terms to image frames to reduce the noise of the image frames. receiving a set of sequential image frames; determining row values for the image frames comprising scene information and noise information, wherein the row values are row mean values or row sum values; performing first spectral transforms in a first domain on corresponding subsets of the row values to determine first spectral coefficients, wherein the first domain is a spatial domain; performing second spectral transforms in a second domain on corresponding subsets of the first spectral coefficients to determine second spectral coefficients, wherein the second domain is a temporal domain; comparing the second spectral coefficients with noise spectral coefficients calculated from other image frames comprising only noise information; adjusting the second spectral coefficients that have magnitudes equal to or lower than those of corresponding noise coefficients to generate adjusted second spectral coefficients; performing reverse second spectral transforms in the second domain on corresponding subsets of the adjusted second spectral coefficients to determine adjusted first spectral coefficients; performing reverse first spectral transforms in the first domain on corresponding subsets of the adjusted first spectral coefficients to determine adjusted row values; comparing the original row values with the adjusted row values and determining row correction terms for the rows in the image frames; repeating the previous steps to for the columns of said image frames in order to obtain column correction terms for the columns in the image frames; and applying the row and column correction terms to image frames to reduce the noise of the image frames.