conv2
二维卷积
描述
例子
二维卷积
在图像处理等应用中,将卷积的输入直接与输出进行比较是很有用的。的conv2
函数允许您控制输出的大小。
创建一个3 × 3随机矩阵一个
和一个4 × 4随机矩阵B
.计算的完整卷积一个
而且B
,这是一个6 × 6矩阵。
A = rand(3);B = rand(4);Cfull = conv2(A,B)
Cfull =6×60.7861 1.2768 1.4581 1.0007 0.2876 0.0099 1.0024 1.8458 3.0844 2.5151 1.5196 0.2560 1.0561 1.9824 3.5790 3.9432 2.9708 0.7587 1.6790 2.0772 3.0052 3.7511 2.7593 1.5129 0.9902 1.1000 2.4492 1.6082 1.7976 1.2655 0.1215 0.1469 1.0409 0.5540 0.6941 0.6499
计算卷积的中心部分Csame
的子矩阵Cfull
尺寸一样的一个
.Csame
等于Cfull (3:5, 3:5)
.
Csame = conv2(A,B,“相同”)
Csame =3×33.5790 3.9432 2.9708 3.0052 3.7511 2.7593 2.4492 1.6082 1.7976
提取二维底座边缘
索贝尔寻边操作使用二维卷积来检测图像和其他二维数据中的边缘。
创建并绘制一个内部高度为1的2-D底座。
A = 0 (10);A(3:7,3:7) = ones(5);网(一个)
的行进行卷积一个
用向量u
,然后将结果的行与向量进行卷积v
.卷积提取了基座的水平边缘。
U = [1 0 -1]';V = [1 2 1];Ch = conv2(u,v,A);网格(Ch)
要提取基座的垂直边缘,将与卷积的顺序颠倒u
而且v
.
Cv = conv2(v,u,A);网格(简历)
计算并绘制底座的组合边。
图网(sqrt (Ch。^2 + Cv ^2))
输入参数
一个
- - - - - -输入数组
向量|矩阵
输入数组,指定为向量或矩阵。
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
复数支持:金宝app是的
B
- - - - - -第二输入数组
向量|矩阵
第二个输入数组,指定为要与之卷积的向量或矩阵一个
.数组B
不一定要和?一样大一个
.
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
复数支持:金宝app是的
u
- - - - - -输入向量
行向量或列向量
输入向量,指定为行向量或列向量。u
的每一列进行卷积一个
.
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
复数支持:金宝app是的
v
- - - - - -第二个输入向量
行向量或列向量
第二个输入向量,指定为行向量或列向量。v
卷积的每一行u
的列一个
.
数据类型:双
|单
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|逻辑
复数支持:金宝app是的
形状
- - - - - -卷积分段
“全部”
(默认)|“相同”
|“有效”
卷积的分段,指定为下列值之一:
“全部”
-返回完整的二维卷积。“相同”
-返回卷积的中心部分,其大小与一个
.“有效”
-只返回计算时没有填充零边的部分卷积。
输出参数
C
-二维卷积
向量|矩阵
二维卷积,作为向量或矩阵返回。当一个
而且B
是矩阵,那么卷积呢C = conv2(A,B)
有大小尺寸(A) + 1 (B)
.当[m,n] = size(A)
,P =长度(u)
,Q =长度(v)
,然后是卷积C = conv2(u,v,A)
有m + p - 1
行和n + q1
列。
当一个或多个输入参数conv2
类型单
,则输出为类型单
.否则,conv2
将输入转换为类型双
并返回类型双
.
数据类型:双
|单
更多关于
二维卷积
对于离散的二维变量一个而且B,下式定义的卷积一个而且B:
p而且问遍历导致的合法下标的所有值(p, q)而且B (j] + 1, k-q + 1).
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
使用注意事项和限制:
如果
形状
是“全部”
(默认),然后输入一个
而且B
不能为空,只能有一个高数组。如果
形状
是“相同”
或“有效”
,然后B
不能是高数组。u
而且v
不能是高数组。
有关更多信息,请参见高大的数组.
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。
线程环境
使用MATLAB®在后台运行代码backgroundPool
或使用并行计算工具箱™加速代码ThreadPool
.
这个函数完全支持基于线程的环境。金宝app有关更多信息,请参见在线程环境中运行MATLAB函数.
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
本功能完全支持GPU阵列。金宝app有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
分布式阵列
使用并行计算工具箱™跨集群的组合内存对大型数组进行分区。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。