⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fmask.c

📁 image processing including fourier,wavelet,segmentation etc.
💻 C
字号:
/*--------------------------- Commande MegaWave -----------------------------*//* mwcommand   name = {fmask};   version = {"2.0"};   author = {"Lionel Moisan"};   function = {"Choose between two Fimages according to a mask value"};   usage = {   'v':[v=0]->v "mask transparency value (default 0)",   'i'->i_flag  "invert: the test mask==v selects A (instead of B)",   'c':c->c     "take float constant c as value of B",   out<-out     "output Fimage (at each point, equals A if mask!=v, B else)",   mask->mask   "mask Cimage",   A->A         "first Fimage", { B->B         "second Fimage, not needed if -c option is selected" }   };*/#include <stdio.h>#include "mw.h"void fmask(mask,A,B,out,i_flag,v,c)Fimage mask,A,B,out;char *i_flag;int *v;float *c;{  int i;  float a,b;  unsigned char m;  if ((c?1:0)+(B?1:0) != 1)     mwerror(USAGE,1,"Please specify image B or use -c option.");       if (A->nrow!=mask->nrow || A->ncol!=mask->ncol)      mwerror(USAGE,1,"Image A and mask must have the same size.");  if (B) if (B->nrow!=mask->nrow || B->ncol!=mask->ncol)      mwerror(USAGE,1,"Image B and mask must have the same size.");  /* prepare output */  out = mw_change_fimage(out,A->nrow,A->ncol);  if (!out) mwerror(FATAL, 1, "Not enough memory.");  /* main loop */  for (i=A->nrow*A->ncol;i--;) {    m = mask->gray[i];    a = A->gray[i];     b = (B?B->gray[i]:*c);    if (i_flag)          out->gray[i] = ((m==*v)?a:b);    else out->gray[i] = ((m!=*v)?a:b);  }}

⌨️ 快捷键说明

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