1. 程式人生 > >任何影象處理其實都是拼數學知識,比較全的矩陣

任何影象處理其實都是拼數學知識,比較全的矩陣

   數學不行就先拿別人的看看吧,比較全:

濾波:FName1為原始資料檔名,FName2為濾波後資料檔名。procedure TForm.Smooth(FName1,FName2:string);var  L1 : longint;  I, Icount, Fp1, Fp2: integer;  pre:array [1..14] of Byte;  Last:array [1..3] of Byte;  X, Y ,Z: buffer;  F:file of byte;begin  assignfile(F,FName1);  reset(F);  datalength:=filesize(F);  closefile(f);  Fp1:=fileopen(Fname1,0);  Icount:=fileread(Fp1,X,14);  L1:=Icount;  assignfile(F,fname2);  rewrite(F);  closefile(F);  Fp2:=fileopen(Fname2,1);  for I:=1 to 14 do    pre[I]:=X[I];  Y[1]:=X[1];  Y[2]:=(X[2]+2*X[1])div 3;  Y[3]:=(x[3]+2*x[2]+3*x[1])div 6;  Y[4]:=(x[4]+2*x[3]+3*x[2]+4*x[1])div 10;  Y[5]:=(x[5]+2*x[4]+3*x[3]+4*x[2]+5*x[1])div 15;  Y[6]:=(x[6]+2*x[5]+3*x[4]+4*x[3]+5*x[2]+6*x[1])div 21;  Y[7]:=(x[7]+2*x[6]+3*x[5]+4*x[4]+5*x[3]+6*x[2]+7*x[1])div 28;  Y[8]:=(x[8]+2*x[7]+3*x[6]+4*x[5]+5*x[4]+6*x[3]+7*x[2]+8*x[1])div 36;  Y[9]:=(x[9]+2*x[8]+3*x[7]+4*x[6]+5*x[5]+6*x[4]+7*x[3]+8*x[2]+7*x[1])div 43;  Y[10]:=(x[10]+2*x[9]+3*x[8]+4*x[7]+5*x[6]+6*x[5]+7*x[4]+8*x[3]+7*x[2]+6*x[1])div 49;  Y[11]:=(x[11]+2*x[10]+3*x[9]+4*x[8]+5*x[7]+6*x[6]+7*x[5]+8*x[4]+7*x[3]+6*x[2]+5*x[1])div 54;  Y[12]:=(x[12]+2*x[11]+3*x[10]+4*x[9]+5*x[8]+6*x[7]+7*x[6]+8*x[5]+7*x[4]+6*x[3]+5*x[2]+4*x[1])div 58;  Y[13]:=(x[13]+2*x[12]+3*x[11]+4*x[10]+5*x[9]+6*x[8]+7*x[7]+8*x[6]+7*x[5]+6*x[4]+5*x[3]+4*x[2]+3*x[1])div 61;  Y[14]:=(x[14]+2*x[13]+3*x[12]+4*x[11]+5*x[10]+6*x[9]+7*x[8]+8*x[7]+7*x[6]+6*x[5]+5*x[4]+4*x[3]+3*x[2]+2*x[1])div 63;  Filewrite(fp2,Y,14);  last[1]:=Y[12];  last[2]:=Y[13];  last[3]:=Y[14];  while L1<dataLength do    begin     Icount:=fileread(Fp1,X,N);     L1:=L1+Icount;     Y[1]:=(x[1]+2*pre[14]+3*pre[13]+4*pre[12]+5*pre[11]+6*pre[10]+7*pre[9]+8*pre[8]+7*pre[7]+6*pre[6]+5*pre[6]+4*pre[4]+3*pre[3]+2*pre[2]+1*pre[1])div 64;     Y[2]:=(x[2]+2*X[1]+3*pre[14]+4*pre[13]+5*pre[12]+6*pre[11]+7*pre[10]+8*pre[9]+7*pre[8]+6*pre[7]+5*pre[6]+4*pre[6]+3*pre[4]+2*pre[3]+1*pre[2])div 64;     Y[3]:=(X[3]+2*x[2]+3*X[1]+4*pre[14]+5*pre[13]+6*pre[12]+7*pre[11]+8*pre[10]+7*pre[9]+6*pre[8]+5*pre[7]+4*pre[6]+3*pre[6]+2*pre[4]+1*pre[3])div 64;     Y[4]:=(X[4]+2*X[3]+3*x[2]+4*X[1]+5*pre[14]+6*pre[13]+7*pre[12]+8*pre[11]+7*pre[10]+6*pre[9]+5*pre[8]+4*pre[7]+3*pre[6]+2*pre[5]+1*pre[4])div 64;     Y[5]:=(X[5]+2*X[4]+3*X[3]+4*x[2]+5*X[1]+6*pre[14]+7*pre[13]+8*pre[12]+7*pre[11]+6*pre[10]+5*pre[9]+4*pre[8]+3*pre[7]+2*pre[6]+1*pre[5])div 64;     Y[6]:=(X[6]+2*X[5]+3*X[4]+4*X[3]+5*x[2]+6*X[1]+7*pre[14]+8*pre[13]+7*pre[12]+6*pre[11]+5*pre[10]+4*pre[9]+3*pre[8]+2*pre[7]+1*pre[6])div 64;     Y[7]:=(X[7]+2*X[6]+3*X[5]+4*X[4]+5*X[3]+6*x[2]+7*X[1]+8*pre[14]+7*pre[13]+6*pre[12]+5*pre[11]+4*pre[10]+3*pre[9]+2*pre[8]+1*pre[7])div 64;     Y[8]:=(X[8]+2*X[7]+3*X[6]+4*X[5]+5*X[4]+6*X[3]+7*x[2]+8*X[1]+7*pre[14]+6*pre[13]+5*pre[12]+4*pre[11]+3*pre[10]+2*pre[9]+1*pre[8])div 64;     Y[9]:=(X[9]+2*X[8]+3*X[7]+4*X[6]+5*X[5]+6*X[4]+7*X[3]+8*x[2]+7*X[1]+6*pre[14]+5*pre[13]+4*pre[12]+3*pre[11]+2*pre[10]+1*pre[9])div 64;     Y[10]:=(X[10]+2*X[9]+3*X[8]+4*X[7]+5*X[6]+6*X[5]+7*X[4]+8*X[3]+7*x[2]+6*X[1]+5*pre[14]+4*pre[13]+3*pre[12]+2*pre[11]+1*pre[10])div 64;     Y[11]:=(X[11]+2*X[10]+3*X[9]+4*X[8]+5*X[7]+6*X[6]+7*X[5]+8*X[4]+7*X[3]+6*x[2]+5*X[1]+4*pre[14]+3*pre[13]+2*pre[12]+1*pre[11])div 64;     Y[12]:=(X[12]+2*X[11]+3*X[10]+4*X[9]+5*X[8]+6*X[7]+7*X[6]+8*X[5]+7*X[4]+6*X[3]+5*x[2]+4*X[1]+3*pre[14]+2*pre[13]+1*pre[12])div 64;     Y[13]:=(X[13]+2*X[12]+3*X[11]+4*X[10]+5*X[9]+6*X[8]+7*X[7]+8*X[6]+7*X[5]+6*X[4]+5*X[3]+4*x[2]+3*X[1]+2*pre[14]+1*pre[13])div 64;     Y[14]:=(X[14]+2*X[13]+3*X[12]+4*X[11]+5*X[10]+6*X[9]+7*X[8]+8*X[7]+7*X[6]+6*X[5]+5*X[4]+4*X[3]+3*x[2]+2*X[1]+1*pre[14])div 64;     Z[1]:=(Y[1]+LAST[3]+LAST[2]+LAST[1]) div 4;     Z[2]:=(Y[2]+Y[1]+LAST[3]+LAST[2]) div 4;     Z[3]:=(Y[3]+Y[2]+Y[1]+LAST[3]) div 4;     for I :=15 to ICount do      Y[I]:=(X[I]+2*X[I-1]+3*X[I-2]+4*X[I-3]+5*X[I-4]+6*X[I-5]+7*X[I-6]+8*X[I-7]+7*X[I-8]+6*X[I-9]+5*X[I-10]+4*X[I-11]+3*x[I-12]+2*X[I-13]+1*X[I-14]) div 64;     for I:= 4 to Icount do      Z[I]:=(Y[I]+Y[I-1]+Y[I-2]+Y[I-3]) div 4;     for I:=1 to 14 do      pre[I]:=X[Icount-I+1];      last[1]:=Y[Icount-2];      Last[2]:=Y[Icount-1];      Last[3]:=Y[Icount];      filewrite(fp2,Z,Icount);    end;      fileclose(fp2);      fileclose(fp1);end;

unit hhx_effectex;interfaceuses hhx_Effects;var mxEmbossColor:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;        Matrix:        (( 0, 0, 0, 0, 0, 0, 0),        ( 0, 0, 0, 0, 0, 0, 0),        ( 0, 0,-1,-1,-1, 0, 0),        ( 0, 0, 0, 1, 0, 0, 0),        ( 0, 0, 1, 1, 1, 0, 0),        ( 0, 0, 0, 0, 0, 0, 0),        ( 0, 0, 0, 0, 0, 0, 0));        Divisor:1;        Bias:0;        FilterName:'彩色浮雕';);var mxEmbossLight:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;        Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0,-1, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 1, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));        Divisor:1;        Bias:192;        FilterName:'高亮浮雕';);var mxEmbossMedium:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;        Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-2,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 2, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));        Divisor:1;        Bias:192;        FilterName:'中值浮雕';);var mxEmbossDark:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;        Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-2,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 2, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));        Divisor:1;        Bias:128;        FilterName:'黑色浮雕';);var mxEdgeEnhance:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;        Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-2,-1, 0, 0),      ( 0, 0,-2,16,-2, 0, 0),      ( 0, 0,-1,-2,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));        Divisor:4;        Bias:0;        FilterName:'邊緣增強 (線性銳化)';);var mxBlurBartlett:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx7;        Matrix:      (( 1, 2, 3, 4, 3, 2, 1),      ( 2, 4, 6, 8, 6, 4, 2),      ( 3, 6, 9,12, 9, 6, 3),      ( 4, 8,12,16,12, 8, 4),      ( 3, 6, 9,12, 9, 6, 3),      ( 2, 4, 6, 8, 6, 4, 2),      ( 1, 2, 3, 4, 3, 2, 1));        Divisor:256;        Bias:0;        FilterName:'Bartlett模糊 (線性模糊)';);var mxBlurGaussian:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx7;        Matrix:     (( 1, 4, 8, 10, 8, 4, 1),      ( 4,12,25,29,25,12, 4),      ( 8,25,49,58,49,25, 8),      (10,29,58,67,58,29,10),      ( 8,25,49,58,49,25, 8),      ( 4,12,25,29,25,12, 4),      ( 1, 4, 8, 10, 8, 4, 1));      Divisor:999;      Bias:0;      FilterName:'高斯模糊 (線性模糊)';);var mxNegative:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0,-1, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:255;      FilterName:'反相 (線性效果)';);var mxAverage:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 1, 1, 0, 0),      ( 0, 0, 1, 1, 1, 0, 0),      ( 0, 0, 1, 1, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:9;      Bias:0;      FilterName:'平均值濾波 (線性模糊)';);var mxBlur:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 2, 1, 0, 0),      ( 0, 0, 2, 4, 2, 0, 0),      ( 0, 0, 1, 2, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:16;      Bias:0;      FilterName:'模糊 Blur';);var mxBlurSoftly:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 3, 1, 0, 0),      ( 0, 0, 3,16, 3, 0, 0),      ( 0, 0, 1, 3, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:32;      Bias:0;      FilterName:'輕度模糊 Blur softly';);var mxBlurMore:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx5;      Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 2, 1, 0, 0),      ( 0, 1, 4, 6, 4, 1, 0),      ( 0, 2, 6, 8, 6, 2, 0),      ( 0, 1, 4, 6, 4, 1, 0),      ( 0, 0, 1, 2, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:64;      Bias:0;      FilterName:'進一步模糊 Blur more';);var mxPrewitt:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 1, 1, 0, 0),      ( 0, 0, 1,-2, 1, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:0;      FilterName:'Prewitt邊緣 (線性邊緣檢測)';);var mxTraceContour:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:      (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-6,-2,-6, 0, 0),      ( 0, 0,-1,32,-1, 0, 0),      ( 0, 0,-6,-2,-6, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:240;      FilterName:'輪廓描繪 (線性邊緣檢測)';);//      FilterName:'Trace contour (Edge detect linear)';);var mxSharpen:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0,-1,16,-1, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:8;      Bias:0;      FilterName:'銳化 (線性銳化)';);var mxSharpenMore:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0,-1,12,-1, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:4;      Bias:0;      FilterName:'進一步銳化 (線性銳化)';);var mxSharpenLess:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0,-1,24,-1, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:16;      Bias:0;      FilterName:'輕度銳化 (線性銳化)';);var mxUnSharpMask:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-2,-1, 0, 0),      ( 0, 0,-2,16,-2, 0, 0),      ( 0, 0,-1,-2,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:4;      Bias:0;      FilterName:'非銳化模板 (線性銳化)';);//      FilterName:'非銳化模板Unsharp mask (Sharpen linear)';);

var mxEdgesStrong:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 3, 1, 0, 0),      ( 0, 0, 3,-16,3, 0, 0),      ( 0, 0, 1, 3, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:0;      FilterName:'強化邊緣 (線性邊緣檢測)';);var mxEdgesWeak:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 1, 0, 0, 0),      ( 0, 0, 1,-4, 1, 0, 0),      ( 0, 0, 0, 1, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:0;      FilterName:'邊緣弱化 (線性邊緣檢測)';);var mxEtch:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-6, 2,-6, 0, 0),      ( 0, 0,-1,32,-1, 0, 0),      ( 0, 0,-6,-2,-6, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:240;      FilterName:'腐蝕';);//      FilterName:'Etch (Effects linear)';);var mxLaplacianHV:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0,-1, 0, 0, 0),      ( 0, 0,-1, 4,-1, 0, 0),      ( 0, 0, 0,-1, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:0;      FilterName:'Laplacian水平/縱向邊緣 (線性邊緣檢測)';);//      FilterName:'Laplacian horz./vert. (Edge detect linear)';);var mxLaplacianOmni:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0,-1, 8,-1, 0, 0),      ( 0, 0,-1,-1,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:0;      FilterName:'Laplacian所有方向邊緣?(線性邊緣檢測)';);//      FilterName:'Laplacian omnidir? (Edge detect linear)';);var mxSharpenDirectional:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-3,-3,-3, 0, 0),      ( 0, 0, 0,16, 0, 0, 0),      ( 0, 0, 1, 1, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:10;      Bias:0;      FilterName:'有方向的銳化';);//      FilterName:'Sharpen directional (Sharpen linear)';);var mxSobelPass:TGraphicFilter      =(FilterType:ftLinear;MatrixSize:mx3;      Matrix:     (( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 1, 2, 1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0,-1,-2,-1, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0),      ( 0, 0, 0, 0, 0, 0, 0));      Divisor:1;      Bias:0;      FilterName:'Sobel邊緣 (線性邊緣檢測)';);//      FilterName:'Sobel pass (Edge detect linear)';);//******************************************************************************////  Two-Pass filters////******************************************************************************var nmxLaplacianInvert:TMultiPassGraphicFilter=      (FilterType:ftMultiPass;       Filters:(@mxLaplacianOmni,@mxNegative,@mxZero,@mxZero);       Functions:(gaNone,gaNone,gaNone);       FilterName:'Laplacian Negative');implementationend.

相關推薦

任何影象處理其實數學知識比較矩陣

   數學不行就先拿別人的看看吧,比較全: 濾波:FName1為原始資料檔名,FName2為濾波後資料檔名。procedure TForm.Smooth(FName1,FName2:string);var  L1 : longint;  I, Icount, Fp1

影象處理之頻率域數學基礎

複數 複數C的定義如下: 其中R和I是實數,j是虛數,即。 C的共軛複數C*: 極座標下表示覆數: 其中,是該向量和實軸(x軸)的夾角。 根據尤拉公式: 有: ‘ 另外,複函式F(u)可表述為: 其中,R(u)和I(u)分別表示實分量函

影象濾波相關的一點數學知識 回顧總結

先看到卷積運算,知道了卷積就是把模版與影象對應點相乘再相加,把最後的結果代替模版中心點的值的一種運算。但是,近來又看到了積分影象的定義,立馬暈菜,於是整理一番,追根溯源一下吧。 1 卷積影象 1.1 源頭 首先找到了一篇講解特別好的博文,原文為:卷積 貼過正文來看: --------------------

遊戲開發中必備的數學知識(三)——矩陣的基本變換

基本變換 使用Direct3D程式設計的時候,我們使用4×4的矩陣表示一個變換。其思路如下: 設定一個4×4的矩陣中元素的值,使其表示某一個具體變換,然後我們將某一點的座標或者某向量的分量放入一個1×4的行向量v中,乘積vX就是成為了一個新的經過變換的向量v。 此時,我們之所以使用4×4

影象處理與計算機視覺:基礎經典以及最近發展(4)影象處理與分析

Last update: 2012-6-3 本章主要討論影象處理與分析。雖然後面計算機視覺部分的有些內容比如特徵提取等也可以歸結到影象分析中來,但鑑於它們與計算機視覺的緊密聯絡,以及它們的出處,沒有把它們納入到影象處理與分析中來。同樣,這裡面也有一些也可以劃歸到計算機視覺中

影象處理與計算機視覺:基礎經典以及最近發展

轉自:http://blog.csdn.net/dcraw/article/details/7617891 由於新浪愛問關閉了,把文章都放在了百度雲盤裡 歷時一個多月,終於用業餘時間把這些資料整理出來了。以後可能會有些小修小補,但不會有太大的變化了。萬里長征走完

4.影象處理與計算機視覺:基礎經典以及最近發展 影象處理與分析

本章主要討論影象處理與分析。雖然後面計算機視覺部分的有些內容比如特徵提取等也可以歸結到影象分析中來,但鑑於它們與計算機視覺的緊密聯絡,以及它們的出處,沒有把它們納入到影象處理與分析中來。同樣,這裡面也有一些也可以劃歸到計算機視覺中去。這都不重要,只要知道有這麼個方法,能為

影象處理與計算機視覺:基礎經典以及最近發展(5)計算機視覺

Last update: 2012-6-7 這一章是計算機視覺部分,主要側重在底層特徵提取,視訊分析,跟蹤,目標檢測和識別方面等方面。對於自己不太熟悉的領域比如攝像機標定和立體視覺,僅僅列出上google上引用次數比較多的文獻。有一些剛剛出版的文章,個人非常喜歡,也列出來

影象處理與計算機視覺:基礎經典以及最近發展(1)序

1. 為什麼要寫這篇文章   從2002年到現在,接觸影象快十年了。雖然沒有做出什麼很出色的工作,不過在這個領域摸爬滾打了十年之後,發現自己對影象處理和計算機視覺的感情越來越深厚。下班之後看看相關的書籍和文獻是一件很愜意的事情。平常的一大業餘愛好就是收集一些相關的文章,尤其

5-python影象處理opencv(1.讀圖顯示轉換儲存)

通過opencv的python介面來,呼叫opencv函式實現,對圖片的載入,顯示,顏色轉換和儲存等 由於:opencv中使用到了python的許多第三方外掛,例如 numpy等,以上鍊接均提供相

影象處理中專案程式碼合集包括特徵提取-影象分割-分類-匹配-降噪等等

       這幾天在研究血管增強與分割,發現一個比較全面的影象處理方面的專案集合,裡面涵蓋了特徵提取、影象分割、影象分類、影象匹配、影象降噪,光流法等等方面的專案和程式碼集合,專案是2012年之前的,但是涵蓋比較基礎的原理知識,用到的時候可以參考一下: Topic

世上從來不缺知識只是缺堅持

原創: 任玉剛 玉剛說   不信嗎?昨天兩位同學問我:剛哥,x腦學院的VIP課程有沒有必要報名學習一下啊? 我一看,要好幾千塊錢呢,當然課程目錄那叫一個全,密密麻麻的腦圖,估計夠學個一兩年了。我覺得我有必要有責任寫篇文章來說明下這方面的事情。我的觀點很明確:如

深度學習 影象分割開原始碼(附連結超級

轉自github,感謝作者mrgloom的整理 Awesome Semantic Segmentation Networks by architecture Semantic segmentation Instance aware segmentation

【我們不是神的孩子】數學_影象處理_雜項

關於個人 本人熱愛學習,先後畢業於福州大學數學與電腦科學學院和華東師範大學計算機與軟體工程學院。真的喜歡福大,畢業以來十分想念,後悔沒有在福州大讀研,雖然身在985,可是有揮之不去的母校情結,願自己一路成長,早發paper,為母校爭光,為大學裡那些幫助過自己的老師爭光!

影象處理演算法其實很簡單

要學習高斯模糊我們首先要知道一些基本概念: 線性濾波與卷積的基本概念       線性濾波可以說是影象處理最基本的方法,它可以允許我們對影象進行處理,產生很多不同的效果。做法很簡單。首先,我們有一個二維的濾波器矩陣(有個高大上的名字叫卷積核)和一個要處理的二維影象。然

影象處理的基礎知識(1)

第一步、對影象進行一個初步的認識: 彩色影象:每個畫素由R、G、B三個分量表示,每個通道取值範圍0~255。資料型別一般為8位無符號整形。範例: filePath = "F:\\learning\\code(1)\\Py\\1.jpg" img = cv2.imread(filePath)

影象處理中的數學原理歸類

影象處理中的數學原理歸類 原文:https://blog.csdn.net/baimafujinji/article/details/48467225 我的“影象處理中的數學原理”專欄中之系列文章已經以《影象處理中的數學修煉》為名結集出版(清華大學出版社)。該書詳細介紹影象處理中的數學原

數學符合和公式(數字影象處理相關)

目錄 1. 數學符號 2. 函式空間 3. 集合的運算和公式 1. 數學符號    集,集合 x是集合X的一個元素 x不是集

岡薩雷斯:數字影象處理(二):第二章數字圖形基礎(下)——數學工具

陣列操作與矩陣操作的區別: 也就是說,除非特別說明,否則以後所提到的矩陣之間的操作都是元畫素與對應畫素之間的操作。 線性運算與非線性運算(和純數學裡面的定義相同): 例如,求和是線性運算,取最大值是非線性運算 灰度影象的集合與邏輯運算: 在灰度影象領域,集合的

數字影象處理基本知識(三)

一、影象訊號的數學表示 1、訊號的分類 訊號的分類   連續的模擬訊號,經過取樣轉化為取樣訊號,最後要根據A/D變換量化才能處理為數字訊號。 模擬訊號和數字訊號的轉換  這時,便會出現一個問題:訊號形式的變化,會不會引起訊號所表示的資訊的變化呢?