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

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

?? infsup.c

?? image processing including fourier,wavelet,segmentation etc.
?? C
字號:
/* mwcommand name = {infsup};version={"2.1"};author = {"Frederic Guichard, Denis Pasquignon, Jacques Froment"};function = {"InfSup scheme or median-median filtering"};usage = {'n':[Niter=2]->Niter[0,1000]      "number of iterations (default 2)",'i':[deginf=0.0]->deginf[0,1]  "second level med (0..1, default: sup=0.)",'s':[degsup=1.0]->degsup[0,1]  "first level med (0..1, default: inf=1.)",'a'->average "swap first and second level med and take the average",input-> image  "input cimage",fmovie -> fmovie "masks sequence",output<- output   "filtered image"};*//*---------------------------------------------------------------------- v2.1: return void (L.Moisan)----------------------------------------------------------------------*/#include <stdio.h>#include <math.h>#include "mw.h"int diff(a,b)     unsigned char *a;     unsigned char *b;{  if ((*a)<(*b)) {    return (-1);  }  else {    return (1);  }}unsigned char TheInf(image,maskn,x,y)     Cimage image;     Fimage maskn;     int x,y;{  int xd,yd,xf,yf,ntx,nty,Mdx,Mdy;  int dx,dy;      /* taille de l'image */  register int i,j;  int aa,mm;      /* intermediaires de calcul */  int l;  unsigned char value;  value=255;  dx= image->ncol;  dy= image->nrow;  Mdx = maskn->ncol;  Mdy = maskn->nrow;  ntx= ((Mdx-1)/2);  nty= ((Mdy-1)/2);  xd=x-ntx;  yd=y-ntx;  xf=x+nty;  yf=y+nty;  if (xd<0) xd=0; else if (xf>=dx) xf=dx-1;  if (yd<0) yd=0; else if (yf>=dy) yf=dy-1;  aa= yd*dx;  mm = -x+ntx+Mdx*(yd-y+nty);  for(j=yd;j<=yf;j++) {    for(i=xd;i<=xf;i++) {      if (maskn->gray[mm+i]>0){ 	if (value> (image-> gray[aa+i]))	  value=image-> gray[aa+i];}    }    aa+=dx;    mm+=Mdx;  }    return(value);}unsigned char TheSup(image,maskn,x,y)     Cimage image;     Fimage maskn;     int x,y;{  int xd,yd,xf,yf,ntx,nty,Mdx,Mdy;  int dx,dy;      /* taille de l'image */  register int i,j;  int aa,mm;      /* intermediaires de calcul */  int l;  unsigned char value;  value=0;  dx= image->ncol;  dy= image->nrow;  Mdx = maskn->ncol;  Mdy = maskn->nrow;  ntx= ((Mdx-1)/2);  nty= ((Mdy-1)/2);  xd=x-ntx;  yd=y-ntx;  xf=x+nty;  yf=y+nty;  if (xd<0) xd=0; else if (xf>=dx) xf=dx-1;  if (yd<0) yd=0; else if (yf>=dy) yf=dy-1;  aa= yd*dx;  mm = -x+ntx+Mdx*(yd-y+nty);  for(j=yd;j<=yf;j++) {    for(i=xd;i<=xf;i++) {      if (maskn->gray[mm+i]>0) { 	if (value< (image-> gray[aa+i]))	  value=image-> gray[aa+i];}    }    aa+=dx;    mm+=Mdx;  }    return(value);}float  Histogram( image,maskn,x,y,Hist)     Cimage image;     Fimage maskn;     int x,y;     float *Hist;{  int xd,yd,xf,yf,ntx,nty,Mdx,Mdy;  int dx,dy;      /* taille de l'image */  register int i,j;  int aa,mm;      /* intermediaires de calcul */  int l;  float sum;      /* sum of histogram  */  dx= image->ncol;  dy= image->nrow;  Mdx = maskn->ncol;  Mdy = maskn->nrow;  ntx= ((Mdx-1)/2);  nty= ((Mdy-1)/2);  xd=x-ntx;  yd=y-ntx;  xf=x+nty;  yf=y+nty;  if (xd<0) xd=0; else if (xf>=dx) xf=dx-1;  if (yd<0) yd=0; else if (yf>=dy) yf=dy-1;    /* --- Histogramme est remis a zero */  for(i=0;i<256;i++) Hist[i]=0.0;    /* --- Puis on le calcule   */    sum=0;  aa= yd*dx;  mm = -x+ntx+Mdx*(yd-y+nty);  for(j=yd;j<=yf;j++) {    for(i=xd;i<=xf;i++) {      l=image-> gray[aa+i];      Hist[l] += maskn->gray[mm+i];      sum += maskn->gray[mm+i];    }    aa+=dx;    mm+=Mdx;  }    return(sum);}/* Procedure InfSup  *//* t1, t2 are the level of the median *//* t1=1, t2=0, process a InfSup... */ResolutionInfSup(image,A,G,t1,t2,movie,Nmask)     Cimage image;     Cimage A;              /* Image Buffer */     unsigned char *G;      /* contains the values for each mask */          Fmovie movie;     int Nmask;             /* Number of masks   */     float t1,t2;{  Fimage maskn;  int kx,ky;  int i,j,l;  register int k;  int dx,dy;                /* size of the image  */  int n,Num;  int Mdx,Mdy;              /* size of a mask     */  float Hist[257];          /* Histogramm         */  float v, vmax;  float presquezero;  presquezero=0.00001;  /* Init                                         */  dx=image->ncol;  dy=image->nrow;  maskn=movie->first;  Mdx=maskn->ncol;  Mdy=maskn->nrow;    if ((A == NULL) || (A->gray == NULL))    mwerror(INTERNAL,1,"[ResolutionInfSup] Null buffer image !\n");  if (G == NULL)    mwerror(INTERNAL,1,"[ResolutionInfSup] Null G buffer !\n");  Num= (int) ( (float) Nmask-1) * t2;  /* For each point of the image : */  for(j=0;j<dy;j++) {    if ((j/10)*10==j) mwdebug("\t[%3.0f %%]\n",100.0 * (float) j/dy);    for(i=0;i<dx;i++){            maskn=movie->first;      for(n=0;n<Nmask;n++) {                 /* For each mask */      		if ((t1>0.02)&&(t1<0.98))  /* -> median of level t1 */ 	  {	    vmax=Histogram( image,maskn,i,j,Hist);  /* Histogramm */	    Hist[257]=100000.0;	    vmax=vmax*t1;	    v=presquezero; k=0; l=0;	    while(Hist[k]<presquezero) k++; 	    if (v<=vmax) {	      while(v<=vmax) {   		if (Hist[k]>presquezero) {		  v+=Hist[k];		}		k++;	      }	      k--;	      if (k==256) { k=255; while(Hist[k]<presquezero) k--;}	    }	  }           	/* if t1<0.02 -> inf */	if (t1<=0.02) {	  k=TheInf(image,maskn,i,j);	}		/* if t1>0.98 -> sup */		if (t1>=0.98)	  {	    k=TheSup(image,maskn,i,j);	  }	        /* we put the median into G */		G[n]=k;		maskn= maskn->next;            }      /* we estimate the median of level t2, on the */      /* values of G                                */            /* if (t2>0.02)&&(t2<0.98) -> median */      if ((t2>0.02)&&(t2<0.98)) {	qsort((void *) G, Nmask, sizeof(unsigned char), diff);	k=G[Num];      }      else	{	  /* if t2<0.02 -> inf  */	  if (t2<=0.02)	    {	      k=255;	      for(l=0;l<Nmask;l++)		if (k>G[l]) k=G[l];	    }	  /* if t2>0.98 -> sup */	  if (t2>=0.98)	    {	      k=0;	      for(l=0;l<Nmask;l++)		if (k<G[l]) k=G[l];	    }	}      /* We copy the result into the image A */      A->gray[i+j*dx]=k;    }  }    /* Finish */  /* we copy the result in the original image */  mw_copy_cimage(A,image);}/* ----------------------------------------------------------*//* The main procedure *//* ----------------------------------------------------------*/Cimage infsup(Niter,deginf,degsup,average,image,fmovie,output)     int *Niter;     float *deginf;     float *degsup;     char *average;     Cimage image;     Fmovie fmovie;     Cimage output;{  int n,j,size,Nmask;  Fimage i;  float t1,t2;  unsigned char *G=NULL;  Cimage image_work=NULL;  Cimage image_save=NULL;  unsigned char *ptr1,*ptr2;  /*------------------------  Number of images in the fmovie...  ------*/    if ((fmovie -> first)==NULL) mwerror(FATAL,1,"empty masks movie !\n");  Nmask=1;  i = fmovie->first;  while (i->next != NULL) { i=i->next; Nmask++; }  mwdebug("Number of masks : %i \n",Nmask);  /* ------------------------ Memory allocation for the buffers -----------*/  G= (unsigned char *) calloc(Nmask+2 , sizeof(unsigned char));  if (G == NULL) mwerror(FATAL, 1, "Not enough memory\n");  image_work = mw_change_cimage(NULL,image->nrow,image->ncol);  if (image_work == NULL) mwerror(FATAL, 1, "Not enough memory\n");    if ((output=mw_change_cimage(output,image->nrow,image->ncol)) == NULL)    mwerror(FATAL, 1, "Not enough memory\n");    if (average)    {      image_save = mw_change_cimage(NULL,image->nrow,image->ncol);      if (image_save == NULL) mwerror(FATAL, 1, "Not enough memory\n");      mw_copy_cimage(image,image_save);    }  /* ----------------------- Main loop  ----------------------------------- */    t1=(*degsup);  t2=(*deginf);  for(n=0;n<(*Niter);n++)     {      mwdebug("iteration : %i / %i \n", n+1,(*Niter));           mwdebug("Running InfSup...\n");      ResolutionInfSup(image,image_work,G,t1,t2,fmovie,Nmask);      if (average)	{	  mwdebug("Running SupInf...\n");	  ResolutionInfSup(image_save,image_work,G,t2,t1,fmovie,Nmask);	  	  size = image->ncol*image->nrow;	  mwdebug("Averaging...\n");	  for (ptr1=image->gray, ptr2=image_save->gray, j=0; 	       j<size; ptr1++,ptr2++,j++)	    *ptr1 = nint(((double) *ptr1 + *ptr2)/2.0);	  mw_copy_cimage(image,image_save);	}    }  mw_copy_cimage(image,output);   /* -------------- Free buffers ------------ */    cfree(G);  if (image_save) mw_delete_cimage(image_save);  mw_delete_cimage(image_work);  return(output);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合97婷婷| 久久先锋影音av鲁色资源网| 国产a精品视频| 国产一区视频在线看| 久久国产欧美日韩精品| 日韩二区三区在线观看| 舔着乳尖日韩一区| 日日噜噜夜夜狠狠视频欧美人| 亚洲成人综合在线| 丝袜亚洲另类欧美| 麻豆成人综合网| 国产一区二区三区最好精华液| 国产精品一区二区91| 国产激情一区二区三区四区| 大胆亚洲人体视频| 日本高清不卡aⅴ免费网站| 在线视频国产一区| 91麻豆精品91久久久久同性| 日韩欧美综合一区| 国产精品国产自产拍在线| 一区二区三区 在线观看视频| 亚洲午夜激情网页| 老司机免费视频一区二区| 国产呦精品一区二区三区网站| 粉嫩av一区二区三区粉嫩| 欧美日韩色一区| 久久影院午夜论| 亚洲精品自拍动漫在线| 美女精品自拍一二三四| 91一区二区在线观看| 91精品在线免费| 国产精品三级电影| 日韩在线一区二区三区| 成人午夜av电影| 91精品国产综合久久久久久漫画| 久久影院视频免费| 亚洲综合999| 国产一区二区三区在线看麻豆| 一本在线高清不卡dvd| 久久综合久久综合九色| 一区二区三区在线免费播放| 国产在线精品视频| 欧美日韩精品免费| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲一区视频在线| 北岛玲一区二区三区四区| 日韩一区二区三| 亚洲男人的天堂在线观看| 国产美女主播视频一区| 欧美日韩精品久久久| 中文字幕一区二区日韩精品绯色 | 久久成人免费网站| 色婷婷国产精品久久包臀| 国产精品网站在线播放| 久久国产福利国产秒拍| 欧美日韩极品在线观看一区| 亚洲色图在线播放| 成人免费观看视频| 久久久综合精品| 美国欧美日韩国产在线播放| 欧美日韩视频第一区| 亚洲制服丝袜在线| 色噜噜狠狠色综合中国| 亚洲欧美日韩国产综合在线| 国产福利一区在线| 久久蜜桃一区二区| 精品一区二区三区久久| 欧美一区二区久久| 天涯成人国产亚洲精品一区av| 91福利视频在线| 亚洲自拍偷拍网站| 色噜噜狠狠成人网p站| 亚洲色图在线看| 色综合天天做天天爱| 1区2区3区欧美| 色综合久久久久久久久| 一区二区在线看| 欧美色视频一区| 午夜激情综合网| 日韩精品一区二区三区swag| 精品一区二区三区在线播放| 久久网站最新地址| 国产精品影视网| 日韩一区日韩二区| 欧洲一区二区三区在线| 亚洲成人在线网站| 欧美一区二区三区四区高清| 久久国产乱子精品免费女| 国产偷国产偷亚洲高清人白洁| 丁香激情综合国产| 玉足女爽爽91| 日韩一区二区影院| 国产成人在线视频免费播放| 成人欧美一区二区三区白人| 91成人免费网站| 美女免费视频一区| 中文字幕国产一区| 欧美视频一区在线| 国内精品伊人久久久久av影院| 欧美激情在线一区二区三区| 在线亚洲免费视频| 国内精品久久久久影院薰衣草| 国产精品系列在线| 欧美精品一卡二卡| 成人激情电影免费在线观看| 亚洲最新视频在线观看| 欧美不卡视频一区| 97久久精品人人做人人爽 | 制服丝袜中文字幕一区| 国产精品一区在线观看乱码| 亚洲黄色在线视频| 精品处破学生在线二十三| 97精品电影院| 久久福利视频一区二区| 亚洲精品视频一区| 2020国产精品久久精品美国| 日本电影欧美片| 国产在线精品不卡| 亚洲成人免费视| 国产精品久久午夜| 欧美大度的电影原声| 在线免费亚洲电影| 成人久久18免费网站麻豆| 日本va欧美va欧美va精品| 一区二区三区免费在线观看| 久久在线观看免费| 欧美一区二区三区四区视频| 91首页免费视频| 国产99久久久精品| 韩国av一区二区三区在线观看| 亚洲一区二区三区四区的| 国产清纯在线一区二区www| 欧美一区在线视频| 欧美熟乱第一页| 一本大道av伊人久久综合| 成人的网站免费观看| 国产精品伊人色| 九九热在线视频观看这里只有精品 | 一本到不卡精品视频在线观看| 狠狠色2019综合网| 老司机免费视频一区二区| 亚洲国产精品久久久久秋霞影院| 国产精品久久毛片| 中文字幕一区二区三区不卡在线 | 欧美一卡二卡在线观看| 欧美性猛片aaaaaaa做受| 91视频在线观看免费| 懂色av一区二区夜夜嗨| 国产成人av在线影院| 国产成人精品免费视频网站| 国产一区二三区好的| 国产在线看一区| 国产美女精品在线| 不卡一区二区在线| 99在线精品免费| 91啪亚洲精品| 在线观看视频一区二区 | 日本人妖一区二区| 麻豆精品一区二区综合av| 美女网站在线免费欧美精品| 秋霞午夜鲁丝一区二区老狼| 美女www一区二区| 韩国成人精品a∨在线观看| 国产一二三精品| 99久久99精品久久久久久| 91小宝寻花一区二区三区| 欧美性猛交xxxxxx富婆| 欧美精品一卡二卡| 精品久久久久久最新网址| 国产午夜久久久久| 一区在线观看免费| 亚洲国产日韩精品| 久久99精品久久久久久动态图 | 成人精品免费网站| 色妹子一区二区| 欧美精品在线一区二区三区| 欧美sm极限捆绑bd| 国产精品国模大尺度视频| 亚洲一区二区视频在线观看| 日本成人中文字幕在线视频| 国产麻豆精品在线| 色婷婷综合久久久中文字幕| 欧美精品在线观看一区二区| 久久久久九九视频| 亚洲成人av中文| 国产成人免费在线观看不卡| 欧美唯美清纯偷拍| 久久综合av免费| 亚洲成av人片一区二区三区| 国产一区二区h| 91网站视频在线观看| 777色狠狠一区二区三区| 久久精品一级爱片| 亚洲曰韩产成在线| 国产超碰在线一区| 欧美一区二区在线免费观看| 国产精品久久久久精k8 | 亚洲色图一区二区三区| 日韩激情一二三区| 国产成人免费在线视频|