下面的代码是我写的用于计算两个图像峰值信噪比的代码,可问题是,不论我用什么图像进行比较,最后得到的psnr值都是正无穷大。
    我想问一下,计算峰值信噪比需要考虑哪些因素,需要考虑图片的类型什么的么?还是用一种方法就可以计算所有图了?
    麻烦大侠指导一下~谢了~~
public double countPSNR(string formerFpath, string laterFpath)
        {
            Bitmap formerImage=new Bitmap(formerFpath);
            Bitmap laterImage=new Bitmap(laterFpath);
            double sumR = 0;
            double sumG = 0;
            double sumB = 0;
            for (int i = 0; i < formerImage.Width - 1; i++)
            {
                for (int j = 0; j < formerImage.Height - 1; j++)
                {
                    Color color1 = formerImage.GetPixel(i, j);
                    Color color2 = laterImage.GetPixel(i, j);
                    int retR = color1.R - color2.R;
                    int retG = color1.G - color2.G;
                    int retB = color1.B - color2.B;
                    sumR = sumR + retR * retR;
                    sumG = sumG + retG * retG;
                    sumB = sumB + retB * retB;
                }
            }
            double sum=sumR+sumG+sumB;
            double MSE = (1 / (3 * formerImage.Width * formerImage.Height)) * sum;
            double PSNR = 20 * Math.Log10(255 / Math.Sqrt(MSE));
            return PSNR;
        }