二维卷积c代码

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

这里直接给出参考代码:

  1. void Conv2(int** filter, int** arr, int** res, int filterW, int filterH, int arrW, int arrH)
  2. {
  3. int temp;
  4. for (int i=0; i<filterH+arrH-1; i++)
  5. {
  6. for (int j=0; j<filterW+arrW-1; j++)
  7. {
  8. temp = 0;
  9. for (int m=0; m<filterH; m++)
  10. {
  11. for (int n=0; n<filterW; n++)
  12. {
  13. if ((i-m)>=0 && (i-m)<arrH && (j-n)>=0 && (j-n)<arrW)
  14. {
  15. temp += filter[m][n]*arr[i-m][j-n];
  16. }
  17. }
  18. }
  19. res[i][j] = temp;
  20. }
  21. }
  22. }
  23. void Conv2Test()
  24. {
  25. int filterW = 3;
  26. int filterH = 3;
  27. int arrW = 5;
  28. int arrH = 5;
  29. int resW = filterW + arrW - 1;
  30. int resH = filterH + arrH - 1;
  31. int** pFilter = new int*[filterH];
  32. for (int i=0; i<filterH; i++)
  33. {
  34. pFilter[i] = new int[filterW];
  35. }
  36. int** arr = new int*[arrH];
  37. for (int i=0; i<arrH; i++)
  38. {
  39. arr[i] = new int[arrW];
  40. }
  41. int** res = new int*[resH];
  42. for (int i=0; i<resH; i++)
  43. {
  44. res[i] = new int[resW];
  45. }
  46. pFilter[0][0] = 1;
  47. pFilter[0][1] = 3;
  48. pFilter[0][2] = 1;
  49. pFilter[1][0] = 0;
  50. pFilter[1][1] = 5;
  51. pFilter[1][2] = 0;
  52. pFilter[2][0] = 2;
  53. pFilter[2][1] = 1;
  54. pFilter[2][2] = 2;
  55. arr[0][0] = 17;
  56. arr[0][1] = 24;
  57. arr[0][2] = 1;
  58. arr[0][3] = 8;
  59. arr[0][4] = 15;
  60. arr[1][0] = 23;
  61. arr[1][1] = 5;
  62. arr[1][2] = 7;
  63. arr[1][3] = 14;
  64. arr[1][4] = 16;
  65. arr[2][0] = 4;
  66. arr[2][1] = 6;
  67. arr[2][2] = 13;
  68. arr[2][3] = 20;
  69. arr[2][4] = 22;
  70. arr[3][0] = 10;
  71. arr[3][1] = 12;
  72. arr[3][2] = 19;
  73. arr[3][3] = 21;
  74. arr[3][4] = 3;
  75. arr[4][0] = 11;
  76. arr[4][1] = 18;
  77. arr[4][2] = 25;
  78. arr[4][3] = 2;
  79. arr[4][4] = 9;
  80. printf("pFilter: \n");
  81. for (int i=0; i<filterH; i++)
  82. {
  83. for (int j=0; j<filterW; j++)
  84. {
  85. printf("%d ", pFilter[i][j]);
  86. }
  87. printf("\n");
  88. }
  89. printf("*********************************************** \n");
  90. printf("arr: \n");
  91. for (int i=0; i<arrH; i++)
  92. {
  93. for (int j=0; j<arrW; j++)
  94. {
  95. printf("%d ", arr[i][j]);
  96. }
  97. printf("\n");
  98. }
  99. printf("*********************************************** \n");
  100. Conv2(pFilter, arr, res, filterW, filterH, arrW, arrH);
  101. printf("res: \n");
  102. for (int i=0; i<resH; i++)
  103. {
  104. for (int j=0; j<resW; j++)
  105. {
  106. printf("%d ", res[i][j]);
  107. }
  108. printf("\n");
  109. }
  110. printf("*********************************************** \n");
  111. }

二维卷积c代码的更多相关文章

  1. 图像处理之基础---二维卷积c实现

    http://wenku.baidu.com/link?url=4RzdmvP9sdaaUbnVEW4OyBD-g67wIOiJjKFF3Le_bu7hIiBS7I6hMcDmCXrQwsHvrsPv ...

  2. 图像处理之C语言实现二维卷积

    在用C语言实现图像处理中,经常要用到二维卷积的运算,这个在matlab中是非常容易实现的,只需要conv2()就OK啦,而且速度非常的快.但是在C语言中就需要四层的for循环来实现了. 首先二维卷积的 ...

  3. 【转】python中的一维卷积conv1d和二维卷积conv2d

    转自:https://blog.csdn.net/qq_26552071/article/details/81178932 二维卷积conv2d 给定4维的输入张量和滤波器张量来进行2维的卷积计算.即 ...

  4. 卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解

    作者:szx_spark 由于计算机视觉的大红大紫,二维卷积的用处范围最广.因此本文首先介绍二维卷积,之后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用. 1. 二维卷积 图中的输入的数据 ...

  5. 深度学习面试题10:二维卷积(Full卷积、Same卷积、Valid卷积、带深度的二维卷积)

    目录 二维Full卷积 二维Same卷积 二维Valid卷积 三种卷积类型的关系 具备深度的二维卷积 具备深度的张量与多个卷积核的卷积 参考资料 二维卷积的原理和一维卷积类似,也有full卷积.sam ...

  6. 4.28 省选模拟赛模拟赛 最佳农场 二维卷积 NTT

    第一次遇到二维卷积 不太清楚是怎么做的. 40分暴力比对即可. 对于行为或者列为1时 容易想到NTT做快速匹配.然后找答案即可. 考虑这是一个二维的比对过程. 设\(f_{i,j}\)表示以i,j为右 ...

  7. JAVA生成二维码图片代码

    首先需要导入 QRCode.jar 包 下载地址看这里   http://pan.baidu.com/s/1o6qRFqM import java.awt.Color;import java.awt. ...

  8. java二维码生成代码

    QRCodeUtil.encode(text, "D:/004.jpg", "D:", true, "exp");// 这个方法的第一个参数 ...

  9. C#--二维码生成代码

    需要用到ThoughtWorks.QRCode.dll文件 string str = Server.UrlDecode(Request.QueryString["id"]); QR ...

随机推荐

  1. Android主题切换方案总结

    所谓的主题切换,就是能够根据不同的设定,呈现不同风格的界面给用户,也就是所谓的换肤. 1.将主题包(图片与配置)存到SD卡上(可通过下载或手动放入指定目录),在代码里强制从本地文件创建图片与配置文字大 ...

  2. 第十一篇:web之Django之Form组件

    Django之Form组件   Django之Form组件 本节内容 基本使用 form中字段和插件 自定义验证规则 动态加载数据到form中 1. 基本使用 django中的Form组件有以下几个功 ...

  3. Canvas 笔记(持续更新中)

    1.从线条开始 HTML <canvas id="canvas"></canvas> Javascript var canvas=document.getE ...

  4. Java 泛型类型的一些限制

    由于泛型类型在运行时被消除,因此,对于如何使用泛型类型是有一些限制的. 限制1:不能使用new E() 不能使用泛型类型参数创建实例.例如,下面的语句是错误的: E object = new E(); ...

  5. JS中(function(){xxx})(); 这种写法是什么意思?

    自执行匿名函数: 常见格式:(function() { /* code */ })(); 解释:包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命 ...

  6. 网卡添加VLAN TAG

    #modprobe 8021q 用命令 lsmod | grep 8021q 来检查 以配置网卡eth0为例,添加vlan号:1002 ================================ ...

  7. MySQL 查询某时间段范围内的数据 补零

    1.创建基础表 CREATE TABLE num (i INT); INSERT INTO num (i) VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9) ...

  8. 青瓷qici - H5小游戏 抽奖机 3 效果设置

    现在是万事俱备,只欠东风,好,我们一起动手,先来东风东. 烟花粒子效果 第一个来实现我们的烟花粒子效果,点击我们的粒子,按照下图方式配置. 注意此时我们已经加入了white.png作为粒子特效使用. ...

  9. jquery禁用a标签,jquery禁用按钮click点击

    jquery禁用a标签方法1 $(document).ready(function () { $("a").each(function () { var textValue = $ ...

  10. 规则引擎-BRMS在企业开发中的应用

    1. 什么是规则复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其 ...