2013-05-20 35 views

回答

3

要计算平滑,例如计算最近像素的平均值。这个内核给出了哪个像素和多少个像素。内核还包含有关像素权重的信息。

内核通常被表示为一个矩阵(在这种情况下也是),它以每个像素为中心进行了计算。在伪C++代码中看起来像这样。

for(int i=0;i<src.rows;i++){ 
    for (int j=0;j<src.cols;j++){ 
     dst[i][j]=0; 
     for(int kernal_i=0;i<kernal.rows;i++){ 
      for (int kernal_j=0;j<kernal.cols;j++){ 
        dst[i-kernal.rows+kernal_i][j-kernal.cols+kernal_j]+= 
         src[i-kernal.rows+kernal_i][j-kernal.cols+kernal_j]* 
         kernal[kernal_i][kernal_j]; 
      } 
     } 
    } 
} 

被称为MAX_KERNAL_LENGTH的变量只是创建一个这样的内核的矩阵的最大尺寸。

+0

啊!大!谢谢:) –

+0

嗯,你能以更简单的方式再次解释内核吗? –

+0

请参阅[链接](http://en.wikipedia.org/wiki/Kernel_(image_processing)) – Xale

0

MAX_KERNEL_LENGTH定义为代码中的常量(31)。它用于将内核大小从1x1更改为31x31,以显示本教程中使用的不同模糊算法中不同内核大小的效果。