예제 #1
0
 private void CreateFilter()
 {
     int[,] kernel = new Gaussian(this.sigma).KernelDiscret2D(this.size);
     int num = 0;
     for (int i = 0; i < this.size; i++)
     {
         for (int k = 0; k < this.size; k++)
         {
             num += kernel[i, k];
         }
     }
     int num4 = this.size >> 1;
     for (int j = 0; j < this.size; j++)
     {
         for (int m = 0; m < this.size; m++)
         {
             if ((j == num4) && (m == num4))
             {
                 kernel[j, m] = (2 * num) - kernel[j, m];
             }
             else
             {
                 kernel[j, m] = -kernel[j, m];
             }
         }
     }
     this.filter = new Correlation(kernel);
 }
예제 #2
0
 private void CreateFilter()
 {
     int[,] kernel = new Gaussian(this.sigma).KernelDiscret2D(this.size);
     this.filter   = new Correlation(kernel);
 }