亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cmp_dct.c

?? 水印技術源代碼 是關于水印識別識別技術的代碼,可以用于防偽
?? C
字號:
/*#############################################################################
 * 文件名:com_dct.c
 * 功能:  比較DCT變換后圖像質量
 * modified by  PRTsinghua@hotmail.com
#############################################################################*/
#include "wm.h"
#include "dct.h"
#include "gray.h"
#include "pgm.h"

char *progname;

void usage(void) {
  fprintf(stderr, "usage: %s [-h] [-m n] [-o file] [-pP] -i file file\n\n", progname);
  fprintf(stderr, "\t-h\t\tprint usage\n");
  fprintf(stderr, "\t-i file\t\toriginal image file\n");
  fprintf(stderr, "\t-m n\t\tmultiplication factor (default 16)\n");
  fprintf(stderr, "\t-o file\t\toutput file\n");
  fprintf(stderr, "\t-p\t\tprint PSNR, RMS and MSE\n");
  fprintf(stderr, "\t-P\t\tonly print PSNR, RMS and MSE, no difference image\n");
  exit(0);
}

int main(int argc, char *argv[]) 
{

  FILE *in = stdin;
  FILE *out = stdout;
  FILE *orig = NULL;

  gray **input_image;
  gray **orig_image;
  double **input_dcts;
  double **orig_dcts;
  gray **output;

  char output_name[MAXPATHLEN] = "(stdout)";
  char input_name[MAXPATHLEN] = "(stdin)";
  char orig_name[MAXPATHLEN];

  int in_cols, in_rows, in_format;
  gray in_maxval;
  int orig_cols, orig_rows, orig_format;
  gray orig_maxval;
  int cols, rows, format;
  gray maxval;
  int col, row;

  int no_orig = 0;
  int c;

  double error = 0.0;
  int print_psnr = 0;
  int print_psnr_only = 0;
  int m = 16;

  progname = argv[0];

  pgm_init(&argc, argv); wm_init();

  while ((c = getopt(argc, argv, "h?i:m:o:pP")) != EOF) {
    switch (c) {
      case 'h':
      case '?':
        usage();
        break;
      case 'i':
        if (!strcmp(optarg, "-")) {
          no_orig = 1;
          strcpy(orig_name, "(zero)");
        }
        else {
          if ((orig = fopen(optarg, "rb")) == NULL) {
            fprintf(stderr, "%s: unable to open original image file %s\n", progname, optarg);
            exit(1);
          }
          strcpy(orig_name, optarg);
        }
        break;
      case 'm':
        m = atoi(optarg);
        if (m <= 0) {
          fprintf(stderr, "%s: multiplication factor %d out of range\n", progname, m);
          exit(1);
        }
        break;
      case 'o':
        if ((out = fopen(optarg, "wb")) == NULL) {
          fprintf(stderr, "%s: unable to open output file %s\n", progname, optarg);
          exit(1);
        }
        strcpy(output_name, optarg);
        break;
      case 'p':
        print_psnr = 1;
        break;
      case 'P':
        print_psnr_only = 1;
        break;
    }
  }

  argc -= optind;
  argv += optind;

  if (argc > 1) {
    usage();
    exit(1);
  }

  if (argc == 1 && *argv[0] != '-')
    if ((in = fopen(argv[0], "rb")) == NULL) {
      fprintf(stderr, "%s: unable to open input file %s\n", progname, argv[0]);
      exit(1);
    }
    else
      strcpy(input_name, argv[0]);

  if (!orig && !no_orig) {
    fprintf(stderr, "%s: original image file not specified, using zero image\n", progname);
    strcpy(orig_name, "(zero)");
    no_orig = 1;
  }

  pgm_readpgminit(in, &in_cols, &in_rows, &in_maxval, &in_format);

  if (!no_orig) {
    pgm_readpgminit(orig, &orig_cols, &orig_rows, &orig_maxval, &orig_format);

    if (in_cols != orig_cols || in_rows != orig_rows) {
      fprintf(stderr, "%s: input image %s does not match dimensions of original image %s\n", progname, input_name, orig_name);
      exit(1);
    }
  }

  cols = in_cols;
  rows = in_rows;
  format = in_format;
  maxval = in_maxval;

  input_image = pgm_allocarray(cols, rows);
  orig_image = pgm_allocarray(cols, rows);

  init_dct_NxN(cols, rows);
  input_dcts = alloc_coeffs(cols, rows);
  orig_dcts = alloc_coeffs(cols, rows);
  output = alloc_grays(cols, rows);

  if (no_orig) {
    for (row = 0; row < rows; row++) {
      pgm_readpgmrow(in, input_image[row], cols, maxval, format);
      bzero(orig_image[row], sizeof(gray) * cols);
    }
  }
  else {
    for (row = 0; row < rows; row++) {
      pgm_readpgmrow(in, input_image[row], cols, maxval, format);
      pgm_readpgmrow(orig, orig_image[row], cols, maxval, format);
    }
  }

  fclose(in);
  if (!no_orig)
    fclose(orig);

  fdct_NxN(input_image, input_dcts);
  fdct_NxN(orig_image, orig_dcts);

  for (row = 0; row < rows; row++)
    for (col = 0; col < cols; col++) {
      error += sqr(input_dcts[row][col] - orig_dcts[row][col]);
      output[row][col] = PIXELRANGE(fabs(input_dcts[row][col] - orig_dcts[row][col]) * m);
    }

  if (!print_psnr_only) {
    pgm_writepgminit(out, cols, rows, maxval, 0);
    for (row = 0; row < rows; row++)
      pgm_writepgmrow(out, output[row], cols, maxval, 0);

    fclose(out);
  }

  pgm_freearray(input_image, rows);
  pgm_freearray(orig_image, rows);
  free_coeffs(input_dcts);
  free_coeffs(orig_dcts);
  free_grays(output);

  if (print_psnr || print_psnr_only) {
    double mse = error / (double) (cols * rows);
    double rmse = sqrt(mse);
    double psnr = 20.0 * log(255.0 / rmse) / log(10.0);
    FILE *print = print_psnr_only ? out : stderr;
    if (mse > 0.0)
      fprintf(print, "PSNR: %lf dB\n", psnr);
    else
      fprintf(print, "PSNR: inf\n");
    fprintf(print, "RMS: %lf\n", rmse);
    fprintf(print, "MSE: %lf\n", mse);
  }

  exit(0);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品日日躁夜夜躁欧美| 91精品国产高清一区二区三区| 欧美α欧美αv大片| 国产亚洲欧美在线| 午夜精品久久久久久不卡8050| 免费成人在线观看| 在线中文字幕一区| 中文字幕不卡在线播放| 五月婷婷综合在线| 色综合色综合色综合色综合色综合 | 亚洲码国产岛国毛片在线| 天天色天天爱天天射综合| www.视频一区| 久久久不卡网国产精品二区| 午夜成人免费视频| 色综合一区二区| 久久精品一区八戒影视| 久热成人在线视频| 欧美在线|欧美| 亚洲女人****多毛耸耸8| 国产91精品精华液一区二区三区| 欧美一区二区三区视频在线观看 | 日韩欧美色综合| 亚洲国产美女搞黄色| 91在线国产观看| 国产午夜精品理论片a级大结局 | 国产尤物一区二区在线| 日韩欧美成人激情| 天天色天天操综合| 7777精品伊人久久久大香线蕉最新版| 中文字幕免费不卡| 4438成人网| 亚洲成人一区在线| 精品1区2区3区| 亚洲国产精品久久不卡毛片 | 国产人妖乱国产精品人妖| 国产真实乱对白精彩久久| 日韩美女视频一区二区在线观看| 五月天国产精品| 欧美美女一区二区在线观看| 亚洲一区二区三区爽爽爽爽爽| 91在线视频播放| 国产精品你懂的在线| 成人开心网精品视频| 国产精品剧情在线亚洲| 99久久精品国产观看| 亚洲欧美日韩人成在线播放| www.av精品| 亚洲色图在线视频| 欧美日韩免费高清一区色橹橹| 一区二区三区四区不卡视频| 欧美在线看片a免费观看| 水蜜桃久久夜色精品一区的特点| 91精品黄色片免费大全| 另类小说一区二区三区| 琪琪久久久久日韩精品| 久久综合九色综合97婷婷女人 | 成人性生交大片免费看视频在线 | 紧缚捆绑精品一区二区| 国产视频一区在线播放| 91美女片黄在线| 天堂一区二区在线| 2022国产精品视频| www.亚洲在线| 午夜欧美大尺度福利影院在线看| 日韩欧美另类在线| 成人sese在线| 亚洲大片一区二区三区| 精品噜噜噜噜久久久久久久久试看| 国内精品自线一区二区三区视频| 中文字幕不卡在线播放| 欧美久久高跟鞋激| 国产精品99久久久久久宅男| 国产精品久久久久久久第一福利| 欧美亚洲一区三区| 国产麻豆精品theporn| 亚洲精品亚洲人成人网在线播放| 3d成人动漫网站| 成年人网站91| 蜜臀国产一区二区三区在线播放 | 日韩一区二区三区三四区视频在线观看 | 久久久不卡网国产精品二区| 337p粉嫩大胆色噜噜噜噜亚洲| 成人综合在线观看| 日韩精品亚洲专区| 亚洲精品水蜜桃| 337p日本欧洲亚洲大胆精品| 欧美日韩一级二级三级| 不卡av免费在线观看| 麻豆精品一区二区av白丝在线| 国产精品高清亚洲| 精品88久久久久88久久久| 在线精品视频免费播放| 国产91丝袜在线播放九色| 日韩精品国产精品| 亚洲九九爱视频| 久久久久久久综合狠狠综合| 丝袜诱惑亚洲看片| 亚洲激情图片小说视频| 久久久午夜精品| 欧美影院午夜播放| 欧美bbbbb| 日韩影院精彩在线| 1000部国产精品成人观看| 精品少妇一区二区三区在线播放| 91在线观看地址| 久久国产婷婷国产香蕉| 国产精品二区一区二区aⅴ污介绍| 日韩欧美在线网站| 欧美中文字幕一二三区视频| 国产一区二区精品久久91| 婷婷成人激情在线网| 国产精品久久久久久久久久免费看 | 精品av久久707| 欧美午夜精品一区| 国产91高潮流白浆在线麻豆| 美国十次综合导航| 亚洲人成网站色在线观看| 国产精品麻豆久久久| 欧美xxxxx裸体时装秀| 欧美日韩免费一区二区三区| 一本到一区二区三区| 风间由美一区二区av101 | 懂色av一区二区三区免费观看| 麻豆精品国产传媒mv男同| 亚洲午夜激情网站| 亚洲人成网站色在线观看| 国产精品美女一区二区三区 | 日韩制服丝袜先锋影音| 蜜臀av国产精品久久久久| 午夜久久久影院| 一区二区三区精品在线观看| 国产精品传媒入口麻豆| 国产校园另类小说区| 久久综合精品国产一区二区三区 | 国产真实乱对白精彩久久| 久久成人免费网站| 久久99精品国产.久久久久久| 日本在线不卡视频一二三区| 日韩**一区毛片| 一区二区三区高清| 99精品国产99久久久久久白柏| 成人av资源在线观看| 国产·精品毛片| 成人国产精品免费观看视频| 北条麻妃一区二区三区| 91一区二区在线| www.色综合.com| 欧美亚洲国产bt| 欧美久久一二三四区| 日韩一区二区精品在线观看| 日韩视频一区二区三区在线播放| 91国内精品野花午夜精品| 精品免费视频.| 国产欧美精品一区| 亚洲日本一区二区| 亚洲成人av资源| 久草中文综合在线| 国产高清成人在线| 91在线国产观看| 欧美一区二区三区在线观看| 欧美sm美女调教| 欧美精品一区二区三区久久久| 国产欧美日韩另类一区| 亚洲免费在线观看| 日韩电影网1区2区| 91丨porny丨蝌蚪视频| 欧美一区二区日韩| 亚洲国产精品国自产拍av| 亚洲午夜私人影院| 国产老肥熟一区二区三区| 8x8x8国产精品| 欧美韩日一区二区三区四区| 亚洲精品久久久蜜桃| 久久精品国产精品青草| 91网站最新地址| 欧美一区二视频| 国产精品久久久久久久久快鸭 | 91精品国产高清一区二区三区蜜臀 | 日本一区二区视频在线| 一区二区久久久久| 久草在线在线精品观看| 色综合天天综合给合国产| 7777精品伊人久久久大香线蕉完整版 | 欧美精品一级二级| 国产精品大尺度| 成人av在线观| 日韩精品一区二区三区蜜臀| 国产精品黄色在线观看| 另类小说综合欧美亚洲| 欧美亚洲国产一卡| 久久免费看少妇高潮| 免费欧美高清视频| 91成人免费电影| 国产精品盗摄一区二区三区| 久久国产精品72免费观看| 欧美三日本三级三级在线播放| 国产精品午夜免费| 奇米色777欧美一区二区| 在线观看网站黄不卡|