均匀量化(lena图)

均匀量化(lena图)lena512.raw 下载地址:https://files.cnblogs.com/files/jzcbest1016/lena512_20171219131444306.rar .raw文件可以用photoshop打开

均匀量化(lena图)"

#include<stdio.h>
#include<math.h>
#define ROW 512
#define COL 512
typedef unsigned char  BYTE;
double cal_psnr(BYTE origin[ROW][COL],BYTE output[ROW][COL])
{
    int i, j;
    double PSNR = 0, MSE = 0, MAXI = 255;
    for (i = 0; i < COL; i++) {
        for (j = 0; j < ROW; j++) {
            MSE += (origin[i][j] - output[i][j]) * (origin[i][j] - output[i][j]);
        }
    }
    MSE = MSE/(ROW*COL);
    printf("MSE: %f\n", MSE);
    PSNR = 20*log10(MAXI) - 10*log10(MSE);
    return PSNR;
}
int main()
{
    FILE *f = NULL;
    BYTE output[ROW][COL];
    BYTE origin[ROW][COL];
    f = fopen("D:\lena512.raw","rb");
    fread(origin,sizeof(BYTE),ROW*COL,f);
    printf("has already read\n");
    for(int i =0;i<ROW;i++)
        for(int j=0;j<COL;j++)
        {
            if(origin[i][j]>=0&&origin[i][j]<=64)
                output[i][j] = 32;
            else if (origin[i][j]>64&&origin[i][j]<=128)
                output[i][j] = 96;
            else if (origin[i][j]>128&&origin[i][j]<=192)
                output[i][j] = 160;
            else
                output[i][j] = 224;
        }
    printf("PSNR: %lf",cal_psnr(origin,output));
    fclose(f);

    return 0;
}

 

lena512.raw 下载地址:https://files.cnblogs.com/files/jzcbest1016/lena512_20171219131444306.rar

.raw文件可以用photoshop打开

今天的文章均匀量化(lena图)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/55304.html

(0)
编程小号编程小号
上一篇 2023-08-28 09:17
下一篇 2023-08-28

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注