frank.c

来自「image processing including fourier,wavel」· C语言 代码 · 共 49 行

C
49
字号
/*--------------------------- MegaWave2 Command -----------------------------*//* mwcommandname = {frank};version = {"1.0"};author = {"Lionel Moisan"};function = {"Generalized rank of a Fimage"};usage = {  'c'->c            "normalize as a Cimage (into [0..256[)", 'w':[w=0.5]->w    "weight: g = w*H + (1-w)*H-, default 0.5", 'g':g<-g          "output contrast change", 'r':rank<-rank    "output rank Fimage = g(u)", u->u              "input Fimage"};*/#include <stdio.h>#include "mw.h"extern Fsignal fvalues();void frank(u,rank,g,w,c)     Fimage u,rank;     Flist g;     float *w;     int *c;{  Fsignal s,mult;  double sum;  float norm;  int i,n;  mult = mw_new_fsignal();  s = fvalues(NULL,mult,rank,u);  n = s->size;  g = mw_change_flist(g,n,n,2);  norm = 1./(float)(u->ncol*u->nrow);  if (c) norm *= 256.;   sum = 0.;  for (i=0;i<n;i++) {    sum += (*w)*mult->values[i];    g->values[i*2  ] = s->values[i];    g->values[i*2+1] = (float)sum*norm;    sum += (1.-*w)*mult->values[i];  }  if (rank)     for (i=rank->nrow*rank->ncol;i--;)      rank->gray[i] = g->values[2*(int)rank->gray[i]+1];}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?