二维卷积c代码
二维信号的卷积原理请参考另外一篇文章:http://blog.csdn.net/carson2005/article/details/43702241
这里直接给出参考代码:
- void Conv2(int** filter, int** arr, int** res, int filterW, int filterH, int arrW, int arrH)
- {
- int temp;
- for (int i=0; i<filterH+arrH-1; i++)
- {
- for (int j=0; j<filterW+arrW-1; j++)
- {
- temp = 0;
- for (int m=0; m<filterH; m++)
- {
- for (int n=0; n<filterW; n++)
- {
- if ((i-m)>=0 && (i-m)<arrH && (j-n)>=0 && (j-n)<arrW)
- {
- temp += filter[m][n]*arr[i-m][j-n];
- }
- }
- }
- res[i][j] = temp;
- }
- }
- }
- void Conv2Test()
- {
- int filterW = 3;
- int filterH = 3;
- int arrW = 5;
- int arrH = 5;
- int resW = filterW + arrW - 1;
- int resH = filterH + arrH - 1;
- int** pFilter = new int*[filterH];
- for (int i=0; i<filterH; i++)
- {
- pFilter[i] = new int[filterW];
- }
- int** arr = new int*[arrH];
- for (int i=0; i<arrH; i++)
- {
- arr[i] = new int[arrW];
- }
- int** res = new int*[resH];
- for (int i=0; i<resH; i++)
- {
- res[i] = new int[resW];
- }
- pFilter[0][0] = 1;
- pFilter[0][1] = 3;
- pFilter[0][2] = 1;
- pFilter[1][0] = 0;
- pFilter[1][1] = 5;
- pFilter[1][2] = 0;
- pFilter[2][0] = 2;
- pFilter[2][1] = 1;
- pFilter[2][2] = 2;
- arr[0][0] = 17;
- arr[0][1] = 24;
- arr[0][2] = 1;
- arr[0][3] = 8;
- arr[0][4] = 15;
- arr[1][0] = 23;
- arr[1][1] = 5;
- arr[1][2] = 7;
- arr[1][3] = 14;
- arr[1][4] = 16;
- arr[2][0] = 4;
- arr[2][1] = 6;
- arr[2][2] = 13;
- arr[2][3] = 20;
- arr[2][4] = 22;
- arr[3][0] = 10;
- arr[3][1] = 12;
- arr[3][2] = 19;
- arr[3][3] = 21;
- arr[3][4] = 3;
- arr[4][0] = 11;
- arr[4][1] = 18;
- arr[4][2] = 25;
- arr[4][3] = 2;
- arr[4][4] = 9;
- printf("pFilter: \n");
- for (int i=0; i<filterH; i++)
- {
- for (int j=0; j<filterW; j++)
- {
- printf("%d ", pFilter[i][j]);
- }
- printf("\n");
- }
- printf("*********************************************** \n");
- printf("arr: \n");
- for (int i=0; i<arrH; i++)
- {
- for (int j=0; j<arrW; j++)
- {
- printf("%d ", arr[i][j]);
- }
- printf("\n");
- }
- printf("*********************************************** \n");
- Conv2(pFilter, arr, res, filterW, filterH, arrW, arrH);
- printf("res: \n");
- for (int i=0; i<resH; i++)
- {
- for (int j=0; j<resW; j++)
- {
- printf("%d ", res[i][j]);
- }
- printf("\n");
- }
- printf("*********************************************** \n");
- }
二维卷积c代码的更多相关文章
- 图像处理之基础---二维卷积c实现
http://wenku.baidu.com/link?url=4RzdmvP9sdaaUbnVEW4OyBD-g67wIOiJjKFF3Le_bu7hIiBS7I6hMcDmCXrQwsHvrsPv ...
- 图像处理之C语言实现二维卷积
在用C语言实现图像处理中,经常要用到二维卷积的运算,这个在matlab中是非常容易实现的,只需要conv2()就OK啦,而且速度非常的快.但是在C语言中就需要四层的for循环来实现了. 首先二维卷积的 ...
- 【转】python中的一维卷积conv1d和二维卷积conv2d
转自:https://blog.csdn.net/qq_26552071/article/details/81178932 二维卷积conv2d 给定4维的输入张量和滤波器张量来进行2维的卷积计算.即 ...
- 卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解
作者:szx_spark 由于计算机视觉的大红大紫,二维卷积的用处范围最广.因此本文首先介绍二维卷积,之后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用. 1. 二维卷积 图中的输入的数据 ...
- 深度学习面试题10:二维卷积(Full卷积、Same卷积、Valid卷积、带深度的二维卷积)
目录 二维Full卷积 二维Same卷积 二维Valid卷积 三种卷积类型的关系 具备深度的二维卷积 具备深度的张量与多个卷积核的卷积 参考资料 二维卷积的原理和一维卷积类似,也有full卷积.sam ...
- 4.28 省选模拟赛模拟赛 最佳农场 二维卷积 NTT
第一次遇到二维卷积 不太清楚是怎么做的. 40分暴力比对即可. 对于行为或者列为1时 容易想到NTT做快速匹配.然后找答案即可. 考虑这是一个二维的比对过程. 设\(f_{i,j}\)表示以i,j为右 ...
- JAVA生成二维码图片代码
首先需要导入 QRCode.jar 包 下载地址看这里 http://pan.baidu.com/s/1o6qRFqM import java.awt.Color;import java.awt. ...
- java二维码生成代码
QRCodeUtil.encode(text, "D:/004.jpg", "D:", true, "exp");// 这个方法的第一个参数 ...
- C#--二维码生成代码
需要用到ThoughtWorks.QRCode.dll文件 string str = Server.UrlDecode(Request.QueryString["id"]); QR ...
随机推荐
- TCP/IP协议原理与应用笔记14:电路交换 和 分组交换
1. 电路交换: (1)建立连接 (2)数据传输 (3)拆除连接 2. 分组交换 (1)数据报: 根据网络的特性,将数据报分成不同大小的部分,经过不同网路传递到相同的目的地.如下: 这里A--X 和 ...
- c++匿名类—指针
1 摘自网上 2代码实例 #include <iostream> #include <list> #include <iterator> #include < ...
- Android Studio之could not reserve enough space for object heap
在用AndroidStudio时出现这样的错误: 每次创建工程后,在项目文件 gradle.properties文件中加入如下代码: org.gradle.jvmargs=-Xmx512m -XX: ...
- C++学习(一)
一.C++语言语法基础(6)1.从C到C++的过渡(1)2.类和对象(2)剑3.操作符重载(1)4.继承与多态(1)5.异常和I/O流(1)二.数据结构和算法(3)1.基本数据结构,堆栈.队列.链表. ...
- js 获取当前时间格式怎么转换?
toLocaleDateString() 得到的时间是 yyyy年MM月dd日 HH:ss:mm 格式的,怎么转换成yyyy-MM-dd HH:ss:mm 在js里面 仅针对这个问题来说,不需要那么大 ...
- asp.net Ajax Post 请求一般处理程序
其实很早就开通博客园了,一直想写些有价值的东西,供自己以后查阅的同时,也可以帮助别人遇到此类问题时能有一个好的解决方法.但是由于各种原因, 就没有实施我的想法.今天突然很想写下一篇文章,不知道我的第一 ...
- 利用Merge生成或更新新记录
-- ============================================= -- Author: <华仔> -- Create date: <2016,6,7& ...
- Spring.net架构示例(含Aop和Ioc)源码
最近写了一个Spring.net的架构. 一.架构主图 架构图的数据流程走向是: UI层=>UILogic>=>Service>Business=>DataAccess ...
- MYSQL连接数据库
web.config <connectionStrings> <add name="MysqlDB" connectionString="Data ...
- WPF简单拖拽功能实现
1.拖放操作有两个方面:源和目标. 2.拖放操作通过以下三个步骤进行: ①用户单击元素,并保持鼠标键为按下状态,启动拖放操作. ②用户将鼠标移到其它元素上.如果该元素可接受正在拖动的内容的类型,鼠标指 ...