convert.c

来自「数字信号处理实验」· C语言 代码 · 共 75 行

C
75
字号
void char2double(unsigned char *in, 		 double *re, double *im,		 int mat_size){  int i;  for(i=0;i<mat_size;i++)    {      re[i]=(double)in[i];      im[i]=0.0;    }}void double2char(unsigned char *in, 		 double *re, double *im,		 int mat_size){  int i;  for(i=0;i<mat_size;i++)    {      if(re[i]>255.0)	{	  in[i]=255;	}      else if(re[i]<0.0)	{	  in[i]=0;	}      else	{	  in[i]=(unsigned char)re[i];	}    }}void power_spectle(double *re, double *im,		   unsigned char *img,		   int ms){  int i;  double *buf, upper,below,ave;  buf = (double *)malloc(ms * sizeof(double));  upper =0.0;below=0.0;  ave = 0.0;  for(i=0;i<ms;i++)    {      buf[i] = (re[i] * re[i] + im[i] * im[i]);      ave += buf[i];      if(upper<buf[i])	{	  upper = buf[i];	}      if(below>buf[i])	{	  below = buf[i];	}    }  /*  printf("%f,%f,%f\n",below, upper,ave/ms);*/  for(i=0;i<ms;i++)    {      img[i]=(unsigned char)(buf[i] *256.0 / (3.0 * ave));    }  free(buf);}

⌨️ 快捷键说明

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