zoukankan      html  css  js  c++  java
  • 均匀量化(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
    ", 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
    ");
        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打开

  • 相关阅读:
    「模拟赛20180306」回忆树 memory LCA+KMP+AC自动机+树状数组
    python写一个通讯录
    Git学习笔记
    交换排序
    用Windows自带的方法创建WiFi
    MySQL之触发器
    插入排序
    range和arange的区别
    Spring前后端跨域请求设置
    三、图的定义及遍历
  • 原文地址:https://www.cnblogs.com/jzcbest1016/p/8484994.html
Copyright © 2011-2022 走看看