zoukankan      html  css  js  c++  java
  • 高斯卷积核滤波

    通过文章: 高斯卷积核滤波的实现

    我发现:高斯卷积核矩阵的值由矩阵的坐标和Sigma标准差决定,也就是说越靠近核矩阵中心的位置,在滤波过程中所占比重越大。

    #include "iostream"  
    #include "math.h"  
      
    using namespace std;   
    using namespace cv;    
      
    //******************高斯卷积核生成函数*************************  
    //第一个参数gaus是一个指向含有3个double类型数组的指针;  
    //第二个参数size是高斯卷积核的尺寸大小;  
    //第三个参数sigma是卷积核的标准差  
    //*************************************************************  
    void GetGaussianKernel(double **gaus, const int size,const double sigma);  
      
    int main(int argc,char *argv[])    
    {  
        int size=5; //定义卷积核大小  
        double **gaus=new double *[size];  
        for(int i=0;i<size;i++)  
        {  
            gaus[i]=new double[size];  //动态生成矩阵  
        }  
        cout<<"尺寸 = 3*3,Sigma = 1,高斯卷积核参数为:"<<endl;  
        GetGaussianKernel(gaus,3,1); //生成3*3 大小高斯卷积核,Sigma=1;     
        cout<<"尺寸 = 5*5,Sigma = 10,高斯卷积核参数为:"<<endl;  
        GetGaussianKernel(gaus,5,10); //生成5*5 大小高斯卷积核,Sigma=1;    
        system("pause");  
        return 0;  
    }  
      
    //******************高斯卷积核生成函数*************************  
    void GetGaussianKernel(double **gaus, const int size,const double sigma)  
    {  
        const double PI=4.0*atan(1.0); //圆周率π赋值  
        int center=size/2;  
        double sum=0;  
        for(int i=0;i<size;i++)  
        {  
            for(int j=0;j<size;j++)  
            {  
                gaus[i][j]=(1/(2*PI*sigma*sigma))*exp(-((i-center)*(i-center)+(j-center)*(j-center))/(2*sigma*sigma));  
                sum+=gaus[i][j];  
            }  
        }  
      
        for(int i=0;i<size;i++)  
        {  
            for(int j=0;j<size;j++)  
            {  
                gaus[i][j]/=sum;  
                cout<<gaus[i][j]<<"  ";  
            }  
            cout<<endl<<endl;  
        }  
        return ;  
    }  

     参考文章:  高斯卷积核滤波的实现  https://blog.csdn.net/liuxiangxxl/article/details/79024290

  • 相关阅读:
    Effective C# 原则50:了解ECMA标准(译)
    Effective C# 原则47:选择安全的代码(译)
    DevExpress小结(简略)
    Effective C#49:为C#2.0做好准备(译)
    Effective C# 原则45:选择强异常来保护程序(译)
    我在犹豫是不是该收集这几首MP3
    用C#预览视频文件(简略)
    DevExpress库的学习总结(简略)
    SharePoint 2010 隐藏快速启动栏(左侧导航)
    将 Excel 导入到 SharePoint 列表
  • 原文地址:https://www.cnblogs.com/hitzzq/p/15002421.html
Copyright © 2011-2022 走看看