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

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

?? linear.cc

?? PIXIL is a small footprint operating environment, complete with PDA PIM applications, a browser and
?? CC
字號:
/* *  linear.cc */#include <math.h>#include <iostream.h>#include "linear.hh"void LowPass_5pt(const Image_YUV<Pixel>& img,Image_YUV<Pixel>& dest){  // Get image parameters and assure that they are in the right format.  ImageParam_YUV param;  img.GetParam(param);  ImageParam_YUV param2;  dest.GetParam(param2);  assert(param.chroma ==Chroma444);  assert(param2.chroma==Chroma444);  assert(&img != &dest);  // Lowpass needs two image buffers for correct operation.  // Give hint as the destination image will be completely overwritten.  dest.Hint_ContentsIsNotUsedAnymore();  Pixel*const* yp2  = dest.AskFrameY();  Pixel*const* up2  = dest.AskFrameU();  Pixel*const* vp2  = dest.AskFrameV();  const Pixel*const* yp  = img.AskFrameY_const();  const Pixel*const* up  = img.AskFrameU_const();  const Pixel*const* vp  = img.AskFrameV_const();  /* Do lowpass filtering.     We filter all of the image except a one pixel wide border because the     filter size is 3x3. This border will simply be copied from the original     image.  */       int w = param.width;  int h = param.height;  for (int y=1;y<param.height-1;y++)    for (int x=1;x<param.width-1;x++)      {	yp2[y][x] = (  yp[y-1][x  ] +		       yp[y+1][x  ] +		       yp[y  ][x-1] +		       yp[y  ][x+1] +		     4*yp[y  ][x  ]    +4)/8;	up2[y][x] = (  up[y-1][x  ] + 		       up[y+1][x  ] +		       up[y  ][x-1] +		       up[y  ][x+1] +		     4*up[y  ][x  ]    +4)/8;	vp2[y][x] = (  vp[y-1][x  ] +		       vp[y+1][x  ] +		       vp[y  ][x-1] +		       vp[y  ][x+1] +		     4*vp[y  ][x  ]    +4)/8;      }  // Copy border from old image to filtered one.  for (int x=0;x<param.width;x++)    {      yp2[  0][x]=yp[  0][x]; up2[  0][x]=up[  0][x]; vp2[  0][x]=vp[  0][x];      yp2[h-1][x]=yp[h-1][x]; up2[h-1][x]=up[h-1][x]; vp2[h-1][x]=vp[h-1][x];    }  for (int y=0;y<param.height;y++)    {      yp2[y][  0]=yp[y][  0]; up2[y][0  ]=up[y][  0]; vp2[y][  0]=vp[y][  0];      yp2[y][w-1]=yp[y][w-1]; up2[y][w-1]=up[y][w-1]; vp2[y][w-1]=vp[y][w-1];    }}void LowPass_3x3mean(const Image_YUV<Pixel>& img,Image_YUV<Pixel>& dest){  // Get image parameters and assure that they are in the right format.  ImageParam_YUV param;  img.GetParam(param);  ImageParam_YUV param2;  dest.GetParam(param2);  assert(param.chroma ==Chroma444);  assert(param2.chroma==Chroma444);  assert(&img != &dest);  // Lowpass needs two image buffers for correct operation.  // Give hint as the destination image will be completely overwritten.  dest.Hint_ContentsIsNotUsedAnymore();  Pixel*const* yp2  = dest.AskFrameY();  Pixel*const* up2  = dest.AskFrameU();  Pixel*const* vp2  = dest.AskFrameV();  const Pixel*const* yp  = img.AskFrameY_const();  const Pixel*const* up  = img.AskFrameU_const();  const Pixel*const* vp  = img.AskFrameV_const();  /* Do lowpass filtering.     We filter all of the image except a one pixel wide border because the     filter size is 3x3. This border will simply be copied from the original     image.  */       int w = param.width;  int h = param.height;  for (int y=1;y<param.height-1;y++)    for (int x=1;x<param.width-1;x++)      {	yp2[y][x] = (  yp[y-1][x-1] +		       yp[y-1][x  ] +		       yp[y-1][x+1] +		       yp[y  ][x-1] +		       yp[y  ][x  ] +		       yp[y  ][x+1] +		       yp[y+1][x-1] +		       yp[y+1][x  ] +		       yp[y+1][x+1]    +4)/9;	up2[y][x] = (  up[y-1][x-1] +		       up[y-1][x  ] +		       up[y-1][x+1] +		       up[y  ][x-1] +		       up[y  ][x  ] +		       up[y  ][x+1] +		       up[y+1][x-1] +		       up[y+1][x  ] +		       up[y+1][x+1]    +4)/9;	vp2[y][x] = (  vp[y-1][x-1] +		       vp[y-1][x  ] +		       vp[y-1][x+1] +		       vp[y  ][x-1] +		       vp[y  ][x  ] +		       vp[y  ][x+1] +		       vp[y+1][x-1] +		       vp[y+1][x  ] +		       vp[y+1][x+1]    +4)/9;      }  // Copy border from old image to filtered one.  for (int x=0;x<param.width;x++)    {      yp2[  0][x]=yp[  0][x]; up2[  0][x]=up[  0][x]; vp2[  0][x]=vp[  0][x];      yp2[h-1][x]=yp[h-1][x]; up2[h-1][x]=up[h-1][x]; vp2[h-1][x]=vp[h-1][x];    }  for (int y=0;y<param.height;y++)    {      yp2[y][  0]=yp[y][  0]; up2[y][0  ]=up[y][  0]; vp2[y][  0]=vp[y][  0];      yp2[y][w-1]=yp[y][w-1]; up2[y][w-1]=up[y][w-1]; vp2[y][w-1]=vp[y][w-1];    }}template <class Pel> void ConvolveH(const Bitmap<Pel>& src,Bitmap<Pel>& dst,				    const Array<double>& filter,bool useborder){  int left = -filter.AskBase();  int right=  filter.AskSize()-left-1;  int border=0;  if (useborder) border=src.AskBorderWidth();  int xs = -border+left; if (xs<0) xs=0;  int xe = src.AskWidth()-1+border-right; if (xe>src.AskWidth()-1) xe=src.AskWidth()-1;  // cout << "H-Filtering from " << xs << " to " << xe << endl;  int h = src.AskHeight();  int borderw = src.AskBorderWidth();  dst.Create(xe-xs+1,h,1,1,borderw);  const double* f = filter.Data_const();  const Pel*const* sp = src.AskFrame_const();        Pel*const* dp = dst.AskFrame();  for (int y=-borderw;y<h+borderw;y++)    for (int x=xs;x<=xe;x++)      {	double sum=0.0;	for (int xx=-left;xx<=right;xx++)	  sum += f[xx]*sp[y][x+xx];    	dp[y][x-xs] = (Pel)sum;      }}template <class Pel> void ConvolveV(const Bitmap<Pel>& src,Bitmap<Pel>& dst,				    const Array<double>& filter,bool useborder){  int top   = -filter.AskBase();  int bottom=  filter.AskSize()-top-1;  int border=0;  if (useborder) border=src.AskBorderWidth();  int ys = -border+top; if (ys<0) ys=0;  int ye = src.AskHeight()-1+border-bottom; if (ye>src.AskHeight()-1) ye=src.AskHeight()-1;  // cout << "V-Filtering from " << ys << " to " << ye << endl;  int w = src.AskWidth();  int borderw = src.AskBorderWidth();  dst.Create(w,ye-ys+1,1,1,borderw);  const double* f = filter.Data_const();  const Pel*const* sp = src.AskFrame_const();        Pel*const* dp = dst.AskFrame();  for (int y=ys;y<=ye;y++)    for (int x=-borderw;x<w+borderw;x++)      {	double sum=0.0;	for (int yy=-top;yy<=bottom;yy++)	  sum += f[yy]*sp[y+yy][x];    	dp[y-ys][x] = (Pel)sum;      }}template <class Pel> void ConvolveHV(const Bitmap<Pel>& src,Bitmap<Pel>& dst,				     const Array<double>& filter,bool useborder){  Bitmap<Pel> tmpbm;  ConvolveH(src,tmpbm,filter,useborder);  ConvolveV(tmpbm,dst,filter,useborder);}void NormalizeFilter(Array<double>& filter){  double sum=0.0;  int i0 = filter.AskStartIdx();  int i1 = filter.AskEndIdx();  double* f = filter.Data();  for (int i=i0;i<=i1;i++)    sum += f[i];  const double fact = 1.0/sum;  for (int i=i0;i<=i1;i++)    f[i] *= fact;}void CreateGaussFilter(Array<double>& filter,double sigma,double cutoffval,bool normalize){#define MAXRANGE 100  double filt[MAXRANGE];  double minus_twosigma2inv = -1.0/(2*sigma*sigma);  int lastidx=MAXRANGE-1;  for (int i=0;i<MAXRANGE;i++)    {      filt[i] = exp(i*i*minus_twosigma2inv);      if (filt[i] < cutoffval)	{ lastidx = i-1; break; }    }  if (lastidx==MAXRANGE-1)    throw "CreateGaussFilter(): Gauss filter is too wide.";  filter.Create(2*lastidx+1 , -lastidx);  double* f = filter.Data();  for (int i=0;i<=lastidx;i++)    f[-i]=f[i]=filt[i];  if (normalize) NormalizeFilter(filter);}void CreateGaussDerivFilter(Array<double>& filter,double sigma,double cutoffval=0.01){  CreateGaussFilter(filter,sigma,cutoffval,false);  for (int i=filter.AskStartIdx();i<=filter.AskEndIdx();i++)    filter.Data()[i] *= i;  // normalize  double sum=0.0;  int i0 = filter.AskStartIdx();  int i1 = filter.AskEndIdx();  double* f = filter.Data();  for (int i=i0;i<=i1;i++)    sum += i*f[i];  const double fact = 1.0/sum;  for (int i=i0;i<=i1;i++)    f[i] *= fact;}template class Array<double>;template void ConvolveH (const Bitmap<Pixel>&,Bitmap<Pixel>&,const Array<double>&,bool);template void ConvolveV (const Bitmap<Pixel>&,Bitmap<Pixel>&,const Array<double>&,bool);template void ConvolveHV(const Bitmap<Pixel>&,Bitmap<Pixel>&,const Array<double>&,bool);template void ConvolveH (const Bitmap<double>&,Bitmap<double>&,const Array<double>&,bool);template void ConvolveV (const Bitmap<double>&,Bitmap<double>&,const Array<double>&,bool);template void ConvolveHV(const Bitmap<double>&,Bitmap<double>&,const Array<double>&,bool);#include "libvideogfx/containers/array.cc"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产亚洲aⅴ| 国产农村妇女精品| 91亚洲精品一区二区乱码| 精品一区二区三区免费| 日本麻豆一区二区三区视频| 亚洲福利视频一区二区| 亚洲国产wwwccc36天堂| 亚洲一二三四久久| 视频一区视频二区中文字幕| 天天av天天翘天天综合网| 午夜精彩视频在线观看不卡| 亚洲成人午夜电影| 日本在线不卡视频| 奇米一区二区三区| 国产伦精品一区二区三区视频青涩 | 亚洲精品日韩综合观看成人91| 国产精品欧美一区二区三区| 亚洲同性同志一二三专区| 亚洲人成7777| 日韩影院在线观看| 国产一区中文字幕| 99re成人在线| 欧美一区二区精美| 26uuu另类欧美| 亚洲视频一区二区在线| 午夜精品影院在线观看| 免费一级片91| 成人一区二区三区视频在线观看| 91捆绑美女网站| 欧美精品18+| 久久精品亚洲精品国产欧美| 亚洲另类中文字| 蜜臀av性久久久久蜜臀av麻豆| 国产乱淫av一区二区三区| 色综合久久久久综合体| 777亚洲妇女| 中文字幕不卡在线| 污片在线观看一区二区| 国产 欧美在线| 精品污污网站免费看| 久久久精品中文字幕麻豆发布| 亚洲猫色日本管| 精一区二区三区| 欧美视频在线一区二区三区| 久久―日本道色综合久久| 一区二区高清视频在线观看| 激情综合网av| 欧美乱妇20p| 日韩一区有码在线| 国内精品自线一区二区三区视频| 色欧美乱欧美15图片| 久久综合av免费| 视频一区中文字幕国产| 一本色道久久综合亚洲aⅴ蜜桃 | 久久精品视频一区| 午夜久久久影院| 91亚洲大成网污www| 久久伊99综合婷婷久久伊| 亚洲一区二区在线免费看| 成人av网站在线| 久久网站最新地址| 老鸭窝一区二区久久精品| 在线免费观看视频一区| 亚洲欧洲精品一区二区三区| 韩国精品在线观看| 欧美成人欧美edvon| 午夜精品免费在线| 欧美亚洲国产一区二区三区va| 日韩毛片一二三区| 成人一级片在线观看| 欧美xxxxxxxxx| 久久超碰97中文字幕| 91精品欧美久久久久久动漫| 亚洲成人手机在线| 欧美日韩的一区二区| 亚洲一区影音先锋| 欧美日韩成人激情| 午夜精品久久久久久久蜜桃app| 色婷婷精品久久二区二区蜜臂av| 亚洲啪啪综合av一区二区三区| www.在线欧美| 一区二区三区在线免费观看 | 亚洲福利视频一区| 欧美日韩在线观看一区二区 | 日韩西西人体444www| 日本午夜精品视频在线观看| 777色狠狠一区二区三区| 亚洲3atv精品一区二区三区| 欧美高清视频不卡网| 全国精品久久少妇| 精品入口麻豆88视频| 国内成人自拍视频| 亚洲欧洲成人精品av97| 91蜜桃在线观看| 手机精品视频在线观看| 欧美tickling网站挠脚心| 国产丶欧美丶日本不卡视频| 国产精品大尺度| 欧美在线观看一区| 蜜桃久久久久久久| 中文字幕不卡在线播放| 在线亚洲一区二区| 美女看a上一区| 欧美激情中文不卡| 欧美视频一区二区三区四区| 美日韩黄色大片| 中文字幕在线不卡国产视频| 91成人网在线| 国产精品一卡二卡| 亚洲大片免费看| 精品国产a毛片| 91福利社在线观看| 国产美女精品人人做人人爽| 亚洲免费电影在线| 欧美成人精品1314www| 91免费观看国产| 久久99国产精品免费网站| 亚洲日本在线天堂| 久久综合av免费| 欧美男生操女生| 91丝袜美腿高跟国产极品老师 | 日韩午夜在线播放| 99久久综合色| 麻豆成人在线观看| 亚洲综合丁香婷婷六月香| xnxx国产精品| 在线综合+亚洲+欧美中文字幕| caoporn国产精品| 国产麻豆精品在线| 男男视频亚洲欧美| 亚洲国产乱码最新视频| 国产精品伦理在线| 久久伊人蜜桃av一区二区| 91精品国产欧美一区二区成人 | 久久久综合精品| 91麻豆精品国产| 欧美中文一区二区三区| 99久久精品国产一区二区三区| 久久99精品久久久| 美腿丝袜亚洲色图| 日韩电影一二三区| 亚洲地区一二三色| 亚洲成人一二三| 亚洲第一主播视频| 亚洲国产精品一区二区www| 中文字幕日韩一区| 国产精品久久久久久久第一福利 | 国产一区二区精品在线观看| 日韩二区三区在线观看| 五月天亚洲婷婷| 亚洲国产欧美另类丝袜| 亚洲福中文字幕伊人影院| 亚洲综合色成人| 亚洲午夜三级在线| 亚洲一级片在线观看| 午夜婷婷国产麻豆精品| 日韩国产欧美视频| 蜜臀av国产精品久久久久| 卡一卡二国产精品| 久久国产夜色精品鲁鲁99| 精品亚洲porn| 国产馆精品极品| 成人精品免费视频| 99riav一区二区三区| 在线观看一区日韩| 欧美日本一区二区| 日韩免费看的电影| 久久精品人人做人人综合| 国产精品网曝门| 亚洲最大的成人av| 日韩国产精品久久久久久亚洲| 韩国午夜理伦三级不卡影院| 成人免费高清在线| 色婷婷久久久久swag精品| 欧美一区二区三区白人| 久久久天堂av| 亚洲视频在线一区观看| 亚洲va欧美va人人爽| 久久精品国产一区二区三区免费看| 激情综合亚洲精品| 不卡av在线免费观看| 欧美日韩电影一区| 国产婷婷色一区二区三区在线| 国产精品免费aⅴ片在线观看| 亚洲国产视频a| 国产成人啪免费观看软件| 一本色道**综合亚洲精品蜜桃冫| 欧美日韩成人综合在线一区二区| 2023国产精华国产精品| 亚洲视频一区二区免费在线观看 | 国产精品国模大尺度视频| 亚洲资源中文字幕| 韩国av一区二区三区四区| 色综合久久久久久久久久久| 日韩久久精品一区| 亚洲精品乱码久久久久久黑人| 日韩av中文在线观看| 成人免费视频网站在线观看| 欧美精品第一页| 亚洲三级免费观看|