卷积、卷积矩阵(Convolution matrix)与核(Kernel)
- 在图像处理领域,Kernel = convolution matrix = mask,它们一般都为一个较小的矩阵;
- 用于:Sharpen,Blur, Edge enhance,Edge detect,Emboss(使凸出;在……上作浮雕图案;装饰)
1. 卷积操作与卷积矩阵的等价性
(1)创建一维信号
N = 100;
s = zeros(N, 1);
k = [20, 45, 70];
a = [2, -1, 1];
s(k) = a;(2)创建卷积核
L = 4;
h = ones(L, 1)/L;(3)使用 matlab 创建 convolution matrix
首先考虑,卷积矩阵的 size,卷积操作
conv(h, s)返回的响应其长度为 L+N-1, 因此:M = N+L-1;
H = sparse(M, N);
e = ones(N, 1)
for i = 0:L-1,
H = H + spdiags(e*h(i+1), -i, M, N);
end(4)验证二者操作的等价性:
err = H*s - conv(h, s);
max_err = max(abs(err));
2. spy:可视化稀疏矩阵的形式
而不是简单地将稀疏矩阵以一个矩阵的形式显示,显然是因为其规模十分之大,且较为稀疏,不易直观观察。
Kernel (image processing)
8.2. Convolution Matrix
卷积、卷积矩阵(Convolution matrix)与核(Kernel)的更多相关文章
- 卷积、矩阵乘积、高斯模糊滤波(降噪)、空域计算(2D卷积计算)、频域计算(FFT)的理解
矩阵乘积:对应行列对应元素相乘的和组成新的矩阵 两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义.如A是m×n矩阵和B是n×p矩阵,它们的乘积C是一个m×p矩阵 并将此乘积记为: ...
- 直接理解转置卷积(Transposed convolution)的各种情况
使用GAN生成图像必不可少的层就是上采样,其中最常用的就是转置卷积(Transposed Convolution).如果把卷积操作转换为矩阵乘法的形式,转置卷积实际上就是将其中的矩阵进行转置,从而产生 ...
- 金字塔卷积:Pyramidal Convolution
论文地址:https://arxiv.org/pdf/2006.11538.pdf github:https://github.com/iduta/pyconv 作者认为,当前CNN主要存在两个不足: ...
- Convolution Matrix
w褶积矩阵.二值化旧图经核矩阵得到新图. https://docs.gimp.org/en/plug-in-convmatrix.html 8.2. Convolution Matrix 8.2.1. ...
- R语言编程艺术# 矩阵(matrix)和数组(array)
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一 ...
- 【Math for ML】矩阵分解(Matrix Decompositions) (下)
[Math for ML]矩阵分解(Matrix Decompositions) (上) I. 奇异值分解(Singular Value Decomposition) 1. 定义 Singular V ...
- 【Math for ML】矩阵分解(Matrix Decompositions) (上)
I. 行列式(Determinants)和迹(Trace) 1. 行列式(Determinants) 为避免和绝对值符号混淆,本文一般使用\(det(A)\)来表示矩阵\(A\)的行列式.另外这里的\ ...
- R语言编程艺术#02#矩阵(matrix)和数组(array)
矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一 ...
- NumPy 矩阵库(Matrix)
NumPy 矩阵库(Matrix) NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象. 一个 的矩阵是一个由行(row)列(col ...
随机推荐
- php实现矩形覆盖
php实现矩形覆盖 一.总结 很简单的斐波那契数列 二.php实现矩形覆盖 题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总 ...
- php 静态方法和非静态方法的调用说明
1. php类中,静态方法调用当前类的非静态方法必须用self关键字,不能用$this 2. php类中,公有方法调用私有方法使用$this关键字,只能实例化调用 3. php类中,公有方法调用私有方 ...
- 我的前端规范——CSS篇
相关文章 简书原文:https://www.jianshu.com/p/e87bfd27ff59 我的前端规范——开篇:http://www.cnblogs.com/shcrk/p/9271561.h ...
- Netty+WebSocket简单实现网页聊天
基于Netty+WebSocket的网页聊天简单实现 一.pom依赖 <dependency> <groupId>io.netty</groupId> ...
- NSCache使用常见错误
NSCache用来存储缓存数据的时候.和NSDictionary功能类似, 可是NSCache有一个特别的问题: 一旦接收到内存警告之后,假设使用[NSCache removeAllObjects]处 ...
- [Elm] Installing and setting up Elm
Before writing any Elm we need to first install the runtime locally. In this lesson we install the E ...
- Windows Phone 8.1 后台任务
Windows Phone 8.1 应用可以添加多个后台任务,以辅助应用完成某些任务. (1)新建前台应用 后台任务是依托于前台应用的,所以必须拥有一个前台应用. 该前台应用的功能很简单,就是读取文件 ...
- 【37.21%】【codeforces 721B】Passwords
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 建立空间参考 ISpatialReference
转自原文建立空间参考 ISpatialReference ISpatialReferenceFactory spatialReferenceFactory = new SpatialReference ...
- 浅谈struts2的国际化----i18n
可能大家在使用struts框架的时候,偶尔会看到这个词: i18n.也就是 Internationalization i 开头,n 结尾. 总共18个字母,今天的主要内容就是环绕这 四个字母. ...