zoukankan      html  css  js  c++  java
  • 二维卷积c代码

    二维卷积c代码

    二维信号的卷积原理请参考另外一篇文章:http://blog.csdn.net/carson2005/article/details/43702241

    这里直接给出参考代码:

    [cpp] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. void Conv2(int** filter, int** arr, int** res, int filterW, int filterH, int arrW, int arrH)  
    2. {  
    3.     int temp;  
    4.   
    5.     for (int i=0; i<filterH+arrH-1; i++)  
    6.     {  
    7.         for (int j=0; j<filterW+arrW-1; j++)  
    8.         {  
    9.             temp = 0;  
    10.             for (int m=0; m<filterH; m++)  
    11.             {  
    12.                 for (int n=0; n<filterW; n++)  
    13.                 {  
    14.                     if ((i-m)>=0 && (i-m)<arrH && (j-n)>=0 && (j-n)<arrW)  
    15.                     {  
    16.                         temp += filter[m][n]*arr[i-m][j-n];  
    17.                     }  
    18.                 }  
    19.             }  
    20.             res[i][j] = temp;  
    21.         }  
    22.     }  
    23. }  
    24.   
    25. void Conv2Test()  
    26. {  
    27.     int filterW = 3;  
    28.     int filterH = 3;  
    29.     int arrW = 5;  
    30.     int arrH = 5;  
    31.     int resW = filterW + arrW - 1;  
    32.     int resH = filterH + arrH - 1;  
    33.   
    34.     int** pFilter = new int*[filterH];  
    35.     for (int i=0; i<filterH; i++)  
    36.     {  
    37.         pFilter[i] = new int[filterW];  
    38.     }  
    39.   
    40.     int** arr = new int*[arrH];  
    41.     for (int i=0; i<arrH; i++)  
    42.     {  
    43.         arr[i] = new int[arrW];  
    44.     }  
    45.   
    46.     int** res = new int*[resH];  
    47.     for (int i=0; i<resH; i++)  
    48.     {  
    49.         res[i] = new int[resW];  
    50.     }  
    51.   
    52.     pFilter[0][0] = 1;  
    53.     pFilter[0][1] = 3;  
    54.     pFilter[0][2] = 1;  
    55.     pFilter[1][0] = 0;  
    56.     pFilter[1][1] = 5;  
    57.     pFilter[1][2] = 0;  
    58.     pFilter[2][0] = 2;  
    59.     pFilter[2][1] = 1;  
    60.     pFilter[2][2] = 2;  
    61.   
    62.     arr[0][0] = 17;  
    63.     arr[0][1] = 24;  
    64.     arr[0][2] = 1;  
    65.     arr[0][3] = 8;  
    66.     arr[0][4] = 15;  
    67.     arr[1][0] = 23;  
    68.     arr[1][1] = 5;  
    69.     arr[1][2] = 7;  
    70.     arr[1][3] = 14;  
    71.     arr[1][4] = 16;  
    72.     arr[2][0] = 4;  
    73.     arr[2][1] = 6;  
    74.     arr[2][2] = 13;  
    75.     arr[2][3] = 20;  
    76.     arr[2][4] = 22;  
    77.     arr[3][0] = 10;  
    78.     arr[3][1] = 12;  
    79.     arr[3][2] = 19;  
    80.     arr[3][3] = 21;  
    81.     arr[3][4] = 3;  
    82.     arr[4][0] = 11;  
    83.     arr[4][1] = 18;  
    84.     arr[4][2] = 25;  
    85.     arr[4][3] = 2;  
    86.     arr[4][4] = 9;  
    87.   
    88.     printf("pFilter:  ");  
    89.     for (int i=0; i<filterH; i++)  
    90.     {  
    91.         for (int j=0; j<filterW; j++)  
    92.         {  
    93.             printf("%d ", pFilter[i][j]);  
    94.         }  
    95.         printf(" ");  
    96.     }  
    97.     printf("***********************************************  ");  
    98.   
    99.     printf("arr:  ");  
    100.     for (int i=0; i<arrH; i++)  
    101.     {  
    102.         for (int j=0; j<arrW; j++)  
    103.         {  
    104.             printf("%d ", arr[i][j]);  
    105.         }  
    106.         printf(" ");  
    107.     }  
    108.     printf("***********************************************  ");  
    109.   
    110.   
    111.     Conv2(pFilter, arr, res, filterW, filterH, arrW, arrH);  
    112.   
    113.     printf("res:  ");  
    114.     for (int i=0; i<resH; i++)  
    115.     {  
    116.         for (int j=0; j<resW; j++)  
    117.         {  
    118.             printf("%d ", res[i][j]);  
    119.         }  
    120.         printf(" ");  
    121.     }  
    122.     printf("***********************************************  ");  
    123. }  
  • 相关阅读:
    centos7.6 使用yum安装mysql5.7
    解决hadoop本地库问题
    docker-compose 启动警告
    docker 安装zabbix5.0 界面乱码问题解决
    docker 部署zabbix问题
    zookeeper 超时问题
    hbase regionserver异常宕机
    (转载)hadoop 滚动升级
    hadoop Requested data length 86483783 is longer than maximum configured RPC length
    zkfc 异常退出问题,报错Received stat error from Zookeeper. code:CONNECTIONLOSS
  • 原文地址:https://www.cnblogs.com/yymn/p/4589588.html
Copyright © 2011-2022 走看看