Matlab中conv2函数的使用

本文详细介绍了二维卷积的基本概念、C=conv2函数的用法,并展示了如何使用Sobel算子在图像处理中提取二维台座边。通过实例演示了卷积操作在比较图像和边缘检测中的作用,以及如何通过改变输出大小和子区提取进行边缘提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

语法

说明

示例

二维卷积

提取二维台座边


        conv2函数是求二维卷积。

语法

C = conv2(A,B)
C = conv2(u,v,A)

二维卷积

        对于离散的二维变量 A 和 B,以下方程定义 A 和 B 的卷积:

        p 和 q 会遍历所有可得到 A(p,q) 和 B(j-p+1,k-q+1) 的合法下标的值。

说明

​C = conv2(A,B) 返回矩阵 A 和 B 的二维卷积。

C = conv2(u,v,A) 首先求 A 的各列与向量 u 的卷积,然后求每行结果与向量 v 的卷积。

C = conv2(___,shape) 根据 shape 返回卷积的子区。例如,C = conv2(A,B,'same') 返回卷积中大小与 A 相同的中心部分。

示例

二维卷积

        在图像处理等应用程序中,它可用于将卷积的输入直接与输出进行比较。conv2 函数允许您控制输出的大小。

        创建一个 3×3 随机矩阵 A 和一个 4×4 随机矩阵 B。计算 A 和 B 的完整卷积,结果是一个 6×6 矩阵。

A = rand(3);
B = rand(4);
Cfull = conv2(A,B)
Cfull = 6×6

    0.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 的子矩阵,大小与 A 相同。Csame 等于 Cfull(3:5,3:5)。

Csame = conv2(A,B,'same')
Csame = 3×3

    3.5790    3.9432    2.9708
    3.0052    3.7511    2.7593
    2.4492    1.6082    1.7976

提取二维台座边

        Sobel 求边运算利用二维卷积来检测图像的边和其他二维数据。

        创建并绘制一个内部高度等于 1 的二维台座。

A = zeros(10);
A(3:7,3:7) = ones(5);
mesh(A)

        首先求 A 的各行与向量 u 的卷积,然后求卷积结果的各行与向量 v 的卷积。卷积提取台座的水平边。

u = [1 0 -1]';
v = [1 2 1];
Ch = conv2(u,v,A);
mesh(Ch)

        ​要提取台座的垂直边,请反转与 u 和 v 的卷积顺序。

Cv = conv2(v,u,A);
mesh(Cv)

​        计算并绘制台座的组合边。

figure
mesh(sqrt(Ch.^2 + Cv.^2))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值