📄 fmaskrot.c
字号:
/*--------------------------- Commande MegaWave -----------------------------*//* mwcommand name = {fmaskrot}; version = {"1.0"}; author = {"Lionel Moisan"}; function = {"crop the central circular region of a Fimage"}; usage = { 'b':[bg=0.0]->bg "background grey value, default: 0.0",'s':[s=10.]->s "linear transition support (in pixels), default 10.0",in->in "input Fimage",out<-out "output Fimage"};*/#include <stdio.h>#include <math.h>#include "mw.h"/* NB : calling this module with out=in is possible */Fimage fmaskrot(in,out,bg,s) Fimage in,out; float *bg,*s;{ int nx,ny,x,y,adr; double cx,cy,r,d; nx = in->ncol; ny = in->nrow; out = mw_change_fimage(out,ny,nx); cx = 0.5*(double)(nx-1); cy = 0.5*(double)(ny-1); r = (cx<cy?cx:cy); for (x=nx;x--;) for (y=ny;y--;) { adr = y*nx+x; d = hypot((double)x-cx,(double)y-cy); if (d>=r) out->gray[adr] = *bg; else if (d<=r-*s) out->gray[adr] = in->gray[adr]; else out->gray[adr] = (*bg*(*s-(float)(r-d)) + in->gray[adr]*(float)(r-d)) /(*s); } return(out);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -