首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

思考sobel算子的原理

本文从离散微积分和卷积操作两个基础知识点开始,来介绍神经网络中的卷积神经网络。最后,在卷积操作的基础之上,深究sobel算子的原理与设计思想。...本文内容有助于理解卷积神经网络更底层的原理,为深度学习中其它知识的延申打好基础。也可以作为《深度学习之TensorFlow入门、原理与进阶实战》一书的扩展阅读。 (本文3000字左右,10张配图。...预计阅读时间2分钟,思考时间15分钟) 文章结构 1 离散微分与离散积分 2 卷积分及其数学意义 3 卷积神经网络及其工作过程 4 解密Sobel算子 4.1. Sobel算子结构 4.2....Sobel算子的计算过程 4.3. Sobel算子的原理 1 离散微分与离散积分 微积分是微分和积分的总称,微分就是无限细分,积分就是无限求和。大脑在处理视觉时,本身就是一个先微分再积分的过程。...在微积分中,无限细分的条件是,被细分的对象必须是连续的。例如一条直线就可以被无限细分,而由若干个点注成的虚线就无法连续细分。 ? 图1

87120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    灰度图像的 Sobel 边缘检测算法的 HDL实现(二)

    1.4 Sobel 边缘检测算法的 HDL 实现(一)第三、四步 (3) 求得 Gx^2+Gy^2 的结果, 及 Gx 与 Gy 的平方和 这一步直接通过 HDL 中乘法器的描述来实现, 综合时会自动布线为片内乘法器...1.6 Sobel 边缘检测算法的 HDL 实现第五步 根据外部输入阀值,判断并实现边缘的检测 简单的判断 Dim 的大小而已,大于阀值,视为有效,赋 1; 反之则赋 0。具体看代码吧。...post_img_Bit_r <= 1'b0; //Not Edge 13.end 这里说明一下,Sobel_Threshold这个值是可以通过外部按键进行加减以实现动态阈值的调节,实现难度不大...1.7 Sobel 边缘检测算法的 HDL 实现 前面从(1) -(5)中,总共消耗了 5 个时钟, 因此最后对行场、 像素有效时钟进行 5 个 clock 的偏移。...图8‑18 Sobel与 Robert对比 左图为 Sobel 实现,得到了更多的细节;右图为 Robert 实现, 相对 Sobel 实现更简单。

    1.1K10

    灰度图像的 Sobel 边缘检测算法的 HDL实现(一)

    1.2 Sobel 边缘检测算法研究 所谓的Sobel算法,就是将得到像素点乘以一个3*3矩阵(Sobel算子)得到一个该点的灰度矢量值或者其法矢量值。...Sobel 卷积因子为: ? 图8‑2 Sobel卷积因子 该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。...图8‑6公式 通过以上分析,可以知道,横向及纵向边缘检测的图像灰度值(Gx、Gy)是必须获取得,但是该点灰度的大小时可以通过准确的计算或者近似计算获取,所以接下来针对该问题,简单介绍两个方式的实现。...1.3 Sobel 边缘检测算法的 HDL 实现第一、二步 FPGA 中针对以上矩阵进行算法移植。...前面 Sobel 算子的实现, 为了实现 FPGA 的加速运算, 发挥并行流水线的特性,可以划分为 4 个步骤, 解析与实现分别如下: (1) 计算计算 Gx与 Gy与模板每行的乘积; (2) 求得 3

    1.9K30

    基于FPGA的Sobel算子(一)

    Sobel算子包括x和y方向的差分运算,求取其平方根作为最终取值,一般情况下,在FPGA处理中,考虑到效率和资源占用问题,也可以用绝对值来代替。...将Sobel算子的表达式再次列出如下: 由数学表达式,计算Sobel算子需要首先计算x方向和y方向的微分值gx(x,y)和gy(x,y),之后对两个微分结果分别求平方根或绝对值相加并进行越界处理。...在某些场合可能需要用到梯度的方向,因此,需同时计算出梯度方向θ(x,y)。 1.模板计算 由数学表达式可知,这个模板是尺寸固定的3x3模板,我们同事需要连续三行连续三列的9个元素来读模板进行相乘。...很明显,我们需要两个行缓存来实现行列对齐。 2.开平方以及反正切计算 在软件中,开方运算和反正切运算均属于浮点运算。...而FPGA是不能直接能处理浮点数的,因此如果直接按软件的思路进行浮点计算,首先需要将定点数据转为浮点数,再进行浮点运算,转换完成后再转换成定点。

    1.4K100

    Matlab滤波器设计:FIR滤波器与IIR滤波器设计实现示例

    Matlab滤波器设计:FIR滤波器与IIR滤波器设计实现示例 !! ✨ Matlab版本为R2022b,与以前的版本兼容。...本文使用Matlab中的Signal Processing Toolbox中的designfilt函数,并根据频率响应实现如下两种滤波器: FIR滤波器:有限长单位脉冲响应(Finite Impulse...通常,由于实现理想低通滤波器所需的冲激响应是无限长的,因此无法设计出理想的FIR低通滤波器。理想冲激响应的有限长度逼近会导致滤波器的通带与阻带中均出现波纹,导致带和阻带之间的过渡带宽度非零。...下面的代码使用Kaiser窗方法设计与上面相同的滤波器,并与等波纹滤波器(Equiripple算法)的幅值响应进行比较: % 通过Kaiser窗实现FIR低通滤波器的设计 dk = designfilt...因此,可以查看相位响应离线性有多远,具体实现思路为:观察(理想情况下为常量的)群延迟,查看它的平坦度。

    5.5K30

    基于FPGA的Sobel算子(二)

    基于FPGA的Sobel算子(二) 之Sobel算子计算电路 为了尽量利用FPGA的并行性,可以考虑同时进行X方向和Y方向的计算。...同时,由于,模板的数值为1和2或者-1,-2,我们考虑将负数和正数相加后再整体做减法。模板元素为2时直接进行移位操作则简单地多。 同时得到窗口内9个像素的值比较简单。...将9个数据命名如下表: Sobel(0) Sobel_r(0) Sobel_r2(0) Sobel(1) Sobel_r(1) Sobel_r2(1) Sobel(2) Sobel_r(2) Sobel_r2...得到9个像素之后还需将分别对x和y方向的模板进行运算。由于两个模板中3个像素恒为0.世纪上需要完成6个数据加法运算,经过3个时钟的运算即可得出结果。 ? X方向的Sobel结果计算 ?...X方向的Sobel结果计算 module sobel_module( clk, rst, ); input clk; input rst; parameter DW = 14; //9个窗口寄存器 reg

    1.1K100

    基于FPGA的Sobel算子(三)

    基于FPGA的Sobel算子(三) 之Cordic坐标系转换电路 1.前期预处理:完成坐标象限转换。 2.完成n次迭代工作:采用菊花链式结构设计。 3.后期处理工作:恢复象限转换,增益补偿。...转换工作十分简单,只需提取输入x和y的坐标绝对值作为输出,即可将坐标转换到第一象限,同时判断x和y的绝对值大小,当y>x时,将x和y调换即可将坐标转换到第一象限的前半象限。...4.Cordic后续处理模块 后续处理模块需实现坐标象限还原,很明显,这里的象限指的是角度象限。我们已经在预处理单元中对输入坐标的象限进行了保存,在此模块的基础上需要对象限位置进行恢复。...首先需要明确的一点是,由于处理核需要n个时钟来完成迭代运算,预处理的象限信息需要首先进行缓存n-1个时钟与结果进行对齐。 在象限还原时,采用预处理的逆运算: (1)还原x与y交换信息。...由几何意义实现上述运算: (1)x与y交换,转换公式 ? (2)x<0,说明角度在第二或第三象限,转换公式 ? (3)y<0,说明角度在第三或第四象限,转换公式 ?

    73190

    OpenCV 滤波与卷积之 —— 梯度和导数

    平滑图像的目的有很多,但通常都是为了减少噪声和伪影。在降低图像分辨率的时候,平滑也是十分重要的。OpenCV 提供5种不同的平滑操作,每种操作都有对应的函数实现,这些操作平滑的结果有着细微的差别。...Scharr滤波器 对于3×3的Sobel滤波器,梯度角距离水平或垂直方向越远,误差越明显。...在OpenCV中,调用cv2.sobel()时设置ksize为cv2.SCHARR,即可消除3×3这样小但是快的Sobel导数滤波器所带来的误差。...Scharr滤波器和Sobel滤波器同样很快,但是前者精度更高。因此选择3×3的滤波器时,应当使用Scharr滤波器。...) PIS(img, res) 3. cv2.Laplacian() cv2.laplacian() 实现了对拉普拉斯(Laplacian)算子的离散近似 官方文档 拉普拉斯变换 Laplace

    73110

    教你在真实图像数据上应用线性滤波器

    我们可以通过构建一个非常简单的单层卷积网络并训练它利用多种核进行线性滤波来实现上述过程。...我们也尝试着利用比 Sobel 滤波器更大一些的核去学习一些形式更为普通和任意的滤波器。...我们使用基于 TensorFlow 的 Keras 框架实现这些实验。 x 方向上的 Sobel 滤波器 首先,我们需要定义一组辅助函数来对图像进行预处理。...模型的输出(左边)和相同图像 y 方向 Sobel 滤波器的结果(右边) 笑脸滤波器 之前学习的 Sobel 滤波器非常的简单,仅需要学习非常少量的参数。...与 Sobel 滤波器滤波的图像类似,模型产生的图像也由从数据中学习到了 Sobel 滤波器的特性,区分笑脸滤波器滤波的图像和模型输出的图像是非常难区分的。 ?

    85510

    【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑

    版本: 2.4.9 本篇文章中,我们将一起学习OpenCV中边缘检测的各种算子和滤波器——Canny算子,Sobel算子,Laplace算子以及Scharr滤波器。...常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核(具体见“高斯滤波原理及其编程离散化实现方法”一文),然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和(具体程序实现见下文)...2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来。在具体编程实现时,可通过计算梯度幅值来确定。...如下显示了一个 size = 5 的高斯内核示例: 2.计算梯度幅值和方向。 此处,按照Sobel滤波器的步骤。...5.1 OpenCV中Scharr函数详解 使用Scharr滤波器运算符计算x或y方向的图像差分。其实它的参数变量和Sobel基本上是一样的,除了没有ksize核的大小。

    92910

    无纺布折痕检测(1)· 基于构造方向滤波器的折痕检测

    3 使用Sobel水平滤波器检测折痕 在使用构造滤波器之前,先使用sobel滤波器进行处理,如果前人总结一些经典的先验知识,秉承着”拿来主义“,使用一些已知的、经典的方法,来解决一些未知的...Sobel算子的处理过程,是分别在水平和垂直方向对图像进行卷积,再讲二者结果结合求得没一点的梯度值。下图为Soble算子的水平、垂直滤波器。 ?...读入图像,将Sobel水平滤波器转换为Halcon的Tuple形式。...filter1 :=[3,3,1,-1,0,1,-2,0,2,-1,0,1] Sobel水平滤波器与图像卷积后如下图,可以看见一条比较长的竖直线条。 ?...关于lines_gauss的参数是比较难调,尤其是高低阈值,此处使用算子calculate_lines_gauss_parameters基本可以实现自适应参数条件,只需要设置所检测线条最大宽度与对比即可

    2.1K60

    opencv(4.5.3)-python(十五)--图像梯度

    理论 OpenCV提供了三种类型的梯度滤波器或高通滤波器,Sobel, Scharr和Laplacian。 1....Sobel和Scharr梯度 Sobel运算符是一种高斯平滑加微分的联合运算,所以它对噪声的抵抗力更强。你可以指定要取的导数的方向,垂直或水平(分别通过参数yorder和xorder)。...你还可以通过参数ksize指定核的大小。如果ksize = -1,则使用3x3 Scharr滤波器,它比3x3 Sobel滤波器的结果更好。请看文档中核的用法。 1....拉普拉斯导数 它计算由以下关系式给出的图像拉普拉斯系数。结果如下: 其中每个导数都是用Sobel导数找到的。如果ksize=1,则使用以下核进行过滤。...下面的代码演示了水平Sobel滤波器的这个过程和结果的差异。

    38030

    基于Matlab的FIR滤波器设计与实现

    一、摘要 前面一篇文章介绍了通过FDATool工具箱实现滤波器的设计,见“基于Matlab中FDATool工具箱的滤波器设计及相关文件的生成”,这里通过几个例子说明采用Matlab语言设计FIR滤波器的过程...而等波纹滤波器是通过最大加权误差最小化来实现,其误差为: ? 要求该误差最小来实现滤波器,得出来的滤波系数较窗函数设计相差较远。 以下通过对例3中的h1及h2作比较。...(y1为用窗函数实现的与理想滤波器的差值,y2为用等波纹滤波器实现的与理想滤波器的差值); ?   ...对比二者的幅度频谱可知,等波纹滤波器阻带边缘比用窗函数实现的更平滑(理想滤波器为垂直下降的)。   ...而等波纹滤波器,其实现是通过大量的迭代运算来实现,这样的方法一般只能通过软件来设计。   项数的问题由于等波纹滤波器能较平均的分布误差,因此对于相同的阻带衰减,其所需的滤波系数比窗函数的要少。

    2.2K30

    OpenCV学习+常用函数记录②:图像卷积与滤波

    /img/brain.jpg") # sobel算子 参数1:图像, 参数2:图像的深度 -1表示和原图相同, 参数3: x方向求导的阶数 参数4: y方向求导的阶数 x_sobel = cv.Sobel...查找边缘的强度及方向(通过Sobel滤波器) 应用非最大信号抑制(Non-maximum Suppression): 完成图像的全扫描以去除可能不构成边缘的任何不需要的像素 高低阈值分离出二值图像(Hysteresis...α-截尾均值滤波器的特点,同时考虑了空间域与值域的差别,而Gaussian Filter和α均值滤波分别只考虑了空间域和值域差别。...高斯滤波器只考虑像素间的欧式距离,其使用的模板系数随着和窗口中心的距离增大而减小;α-截尾均值滤波器则只考虑了像素灰度值之间的差值,去掉α%的最小值和最大值后再计算均值。...sigmaSpace: 坐标空间中滤波器的sigma值,如果该值较大,则意味着越远的像素将相互影响,从而使更大的区域中足够相似的颜色获取相同的颜色.

    64510

    番外篇: 图像梯度

    了解图像梯度和边缘检测的相关概念。图片等可到文末引用处下载。 还记得前面平滑图像中提到的滤波与模糊的区别吗?我们说低通滤波器是模糊,高通滤波器是锐化,这节我们就来看看高通滤波器。...垂直边缘提取 滤波是应用卷积来实现的,卷积的关键就是卷积核,我们来考察下面这个卷积核: image.png 这个核是用来提取图片中的垂直边缘的,怎么做到的呢?...算子更简单地实现: sobelx = cv2.Sobel(img, -1, 1, 0, ksize=3) # 只计算x方向 sobely = cv2.Sobel(img, -1, 0, 1, ksize...=3) # 只计算y方向Copy to clipboardErrorCopied 经验之谈:很多人疑问,Sobel算子的卷积核这几个值是怎么来的呢?...比如,最初只利用领域间的原始差值来检测边缘的Prewitt算子: image.png 还有比Sobel更好用的Scharr算子,大家可以了解下: image.png 这些算法都是一阶边缘检测的代表,网上也有算子之间的对比资料

    62730
    领券