有没有大佬懂C++图像的,帮我看一下下面的代码。

怎么改变里面的参数让输出的图像精确度变低?

这是代码:
int ReadGrayImage(char *FileName, int *Row, int *Col, unsigned char *Image, unsigned char *Fheadg, char *Pallette)//读取灰色图像(文件名,)
{
long Index;
int k, i, j;
FILE *ImageDataFile;

if ((ImageDataFile = fopen(FileName, "rb")) == NULL) return(0);
for (i = 0; i<54; i++) Fheadg[i] = fgetc(ImageDataFile);
*Col = Fheadg[19] * 256 + Fheadg[18];
*Row = Fheadg[23] * 256 + Fheadg[22];
for (i = 0; i<1024; i++) Pallette[i] = fgetc(ImageDataFile);
k = (*Col) * 3 % 4;  if (k == 4) k = 0;
Index = 0;
for (i = 0; i<*Row; i++)
{
    for (j = 0; j<*Col; j++, Index++) Image[Index] = fgetc(ImageDataFile);

    for (j = 1; j <= k; j++) fgetc(ImageDataFile);
}
fclose(ImageDataFile); return(1);

}

int SaveGrayImage(char *FileName, int Row, int Col, unsigned char *Fheadg, char *Pallette, unsigned char *Image)
{
long Index;
FILE *ImageDataFile;
int i, j, k;

k = Col * 3 % 4;  if (k == 4) k = 0;
if ((ImageDataFile = fopen(FileName, "wb")) == NULL)  return(0);
for (i = 0; i<54; i++) fputc(Fheadg[i], ImageDataFile);
for (i = 0; i<1024; i++) fputc(Pallette[i], ImageDataFile);
Index = 0;
for (i = 0; i<Row; i++)
{
    for (j = 0; j<Col; j++, Index++) fputc(Image[Index], ImageDataFile);
    for (j = 1; j <= k; j++) fputc(0, ImageDataFile);
}
fclose(ImageDataFile);      return(1);

}

double PSNR(int Row, int Col, unsigned char *Buf1, unsigned char *Buf2)
{
long Ind, Index;
int r1, r2;
double tr, snoise, tmp, psnr;
Index = (long)Col*Row; snoise = 0.0;
for (Ind = 0; Ind<Index; Ind++)
{
r1 = Buf1[Ind];
r2 = Buf2[Ind];
tr = r1 - r2;
snoise = snoise + tr*tr;
}

tmp = ((double)Row*Col * 255 * 255) / snoise;
psnr = 10 * log10(tmp);
return psnr;

}

https://www.cnblogs.com/littlestart/p/6023976.html