基于Sobel算子的图像边缘检测

图像处理边缘检测算法————sobel算法 图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。常用的边缘检测模板有Laplacian算子、Roberts算子、Sobel算子、log(Laplacian-Gauss)算子、Kirsch算子和Prewitt算子等。Sobel算子是常用的边缘检测模板,算法比较简单,实际应用中效率比 canny 边缘检测效率要高,但是边缘不如 Canny 检测的准确.计算 Gx 为水平横向梯度幅值(左右两列求和),Gy为垂直方向梯度幅值(上下两行求和)的绝对值,原图像A 进行卷积。 阅读详情

一、Sobel算子

       Sobel边缘检测算法比较简单,实际应用中效率比canny边缘检测效率要高,但是边缘不如Canny检测的准确,然而在很多实际应用的场合,sobel边缘却是首选,Sobel算子是高斯平滑与微分操作的结合体,所以其抗噪声能力很强,用途较多。尤其是在对效率要求较高,而对细纹理不太关系的时候。
       使用Sobel算子提取图像边缘分3个步骤:

  1. 提取X方向的边缘,X方向一阶Sobel边缘检测算法为:
    [ − 1 0 1 − 2 0 2 − 1 0 1 ] \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1\end{bmatrix} \quad ​−1−2−1​000​121​ ​
  2. 提取Y方向的边缘,Y方向一阶Sobel边缘检测算法为:
    [ − 1 − 2 − 1 0 0 0 1 2 1 ] \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1\end{bmatrix} \quad ​−101​−202​−101​ ​
  3. 综合两个方向的边缘信息得到整幅图像的边缘。

二、Python代码实现

import cv2
import os
def SobelSeg(image):
    img = cv2.Sobel(image, cv2.CV_32F, 0, 1, ksize=3)
    cv2.namedWindow('W3',cv2.WINDOW_NORMAL)
    cv2.imshow("W3", img)
    cv2.waitKey(delay=0)
    return img

def convert(input_dir, output_dir):
    for image_name in os.listdir(input_dir):
        path = input_dir + "/" + image_name
        image = cv2.imread(path)
        image_1 = SobelSeg(image)
        cv2.imwrite(output_dir + "/" + "0" + image_name , image_1)

if __name__ == '__main__':
    input_dir = r"C:\Users\22476\Desktop\Graduation Project\Edge_test_image\original"
    output_dir = r"C:\Users\22476\Desktop\Graduation Project\Edge_test_image\result_32F"
    convert(input_dir, output_dir)

三、实现效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、参考文章

OpenCV——Sobel边缘检测

python+OpenCV图像处理(八)边缘检测

FPGA图像处理——sobel算子边缘检测 一、sobel算子边缘检测理论 sobel算子是广泛应用的微分算子之一,可以计算图像处理中的边缘检测,计算图像的灰度地图。在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值。在图像的任何一点使用此算子,将会产生该点对应的梯度矢量或是其法矢量原理就是基于图像的卷积来实现在水平方向与垂直方向检测对于方向上的边缘。 这个实验在有学过上述图像矩阵中值运算的基础上来做并不难,把中值改为一个固定的矩阵相乘,这一部分也是卷积操作,与之前老师让学习的神经网络的卷积是相同的运算,也是打神经网络的基础 阅读详情

相关推荐

python图像处理(十一)——图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子、Laplacian算子

在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。 一、Roberts算子 Roberts算子又称交叉微分算法,它是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条,常来处理具有陡峭的低噪声图像,当图

AI_girl的博客 1万+

数字图像处理学习(二):Sobel算子边缘检测

目录一、边缘检测二、Sobel算子三、Verilog 实现步骤图像数据缓存(实时边缘检测,难点,重点)1、计算计算 Gx与 Gy与模板每行的乘积2、求得3*3模板运算后的Gx、Gy3、求得 Gx^2 + Gy^2 的结果, 及 Gx 与 Gy 的平方和4、求得 Gx^2 + Gy^2 的平方根5、与设置的阈值比较 一、边缘检测 边缘检测的目的是标识数字图像中亮度变化明显的点,即检测图像灰度级或者结构发生突变的像素点,这种一副图像中灰度级或结构突变的像素点的集合称为边缘。 图像的灰度值具有不连续性,图像局部

qq_40483920的博客 1万+

[图像处理]sobel算子边缘检测算法

我的程序效果:   边缘检测算法是图像处理中最为基本的问题。其目的是标志图像出亮度变化明显的点,从而反映出图像中重要变化。   先介绍一下Sobel算子: Sobel 算子是像素图像边缘检测中最重要的算子之一,该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如下图,Gx和Gy分别是在横向及纵向的灰度偏导的近似值。(注:对于一...

wk_119的博客 2万+

sobel算子进行边缘检测

使用sobel算子进行边缘检测的步骤如下: 1、高斯模糊,降噪。因为sobel算子对噪声比较敏感,因此要先对原图像进行高斯模糊,降噪 2、将图像转换成灰度图像 3、使用sobel函数,求x和y方向上的导数。 4、将x方向的导数(边缘)和y方向的导数进行叠加。 (1)高斯模糊 //首先进行高斯模糊,降噪 Mat gauImage; GaussianBlur(srcImage, g...

oreo的博客 1万+

Matlab与FPGA图像处理——Roberts、Prewitt、Sobel、LOG、Canny等常见的图像边缘检测算子比较

MATLAB 与 FPGA无线通信、图像处理、数字信号处理系列 基于FPGA的实时边缘检测系统设计,sobel边缘检测流水线实现         图像的边缘是图像在亮度级上的阶梯变化的位置,因此可以通过来一阶微分增强边缘的变化,以此检测边缘位置;二阶导数对图像函数的一阶导数求导,能够使检测到的边缘更加的精细。       &nb...

DengFengLai123的博客 9710

opencv-python:17_图像经典边缘检测算子(边缘检测、图像梯度、Roberts算子、Prewitt算子、Sobel 算子、Laplacian 算子、Canny算子、算子优缺点对比)

图像边缘检测 图像梯度,图像边界等 相关函数:cv2.Sobel(),cv2.Schar(),cv2.Laplacian() 边缘检测 边缘检测是检测图像中的一些像素点,它们周围的像素点的灰度发生了急剧的变化,在此过程中,图像中的物体不同导致了这一变化,因此可以将这些像素点作为一个集合,可以用来标注图像中不同物体的边界。 边缘区域的灰度剖面可以看作是一个阶跃,即图像的灰度在一个很小的区域内变化到另一个相差十分明显的区域。 边缘是图像中的重要的结构性特征,边缘往往存在于目标和背景之间,不同的区

余喵爱吃鱼的博客 7925

数字图像处理(19): 边缘检测算子(Roberts算子、Prewitt算子、Sobel算子 和 Laplacian算子)

目录 1 边缘检测的基本原理 2 边缘检测算子分类 3 梯度 3.1 图像梯度 3.2 梯度算子 4 Roberts 算子 4.1 基本原理 4.2 代码示例 5 Prewitt 算子 5.1 基本原理 5.2 代码示例 6 Sobel 算子 6.1 基本原理 6.2 代码示例 7 Laplacian 算子 7.1 基本原理 7.2 代码示例 8 小结 8...

TechArtisan6的博客 19万+

58.Sobel边缘检测算子

注:在梯度运算中,很可能会出现负的灰度值,我们不能再采用uint8类型作为像素的数据类型,而是采用了CV_16S或者CV_32F这种有负数范围的类型,运算结果里的负数也不能不处理,否则在显示的时候就会被截断为0,这样就会丢失边界信息。如下图所示,对中心像素Z5求取多个方向的灰度差分,对于Z5的8邻域,分为4个方向,即对角线和水平垂直4个方向对:(z1, z9) ,(z2, z8), (z3, z7), (z6, z4) 给定邻域方向梯度矢量g的幅度为:|g| = <像素灰度差分>/<相邻像素的距离>。

twnkie的博客 4884

图像边缘检测-Canny,Sobel等算子

一.前言 首先我们先来简单了解一下什么是数字图像处理(Digital Image Processing),先看一下数字图像主要的两个应用领域: 1.改善图示信息以便人们解释; 2.为存储、传输和表示而对图像数据进行处理,以便于机器自动理解 我们可以简单理解为就将一幅原始图像,使用计算机处理为更为我们所能理解或所需要的形式,如图1-1所示,为基于边缘检测的免疫细胞图像自动分割过程示意图 图 1-1 克隆细胞图像自动分割过程示意图 让我们再看一个例子,如图1-2 ,为经典的车牌检测算法,将原始图

5688

[Python图像处理] 十七.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子

图像锐化和边缘提取技术可以消除图像中的噪声,提取图像信息中用来表征图像的一些变量,为图像识别提供基础。通常使用灰度差分法对图像的边缘、轮廓进行处理,将其凸显。本文分别采用Laplacian算子、Robert算子、Prewitt算子和Sobel算子进行图像锐化边缘处理实验。本文主要讲解灰度线性变换,基础性知识希望对您有所帮助。 1.Roberts算子 2.Prewitt算子 3.Sobel算子 4.Laplacian算子 5.总结代码

杨秀璋的专栏 4万+

JavaCV 图像边缘检测 之 Sobel算子 算法

JavaCV 是一个基于 OpenCV 和 FFmpeg 的 Java 计算机视觉库。它提供了对各种计算机视觉算法和图像处理功能的访问,包括图像读取、处理、显示,以及视频处理等。JavaCV 封装了底层的 C/C++ 库,使得在 Java 中进行计算机视觉开发更加方便快捷。本文详细介绍了JavaCV中的Sobel 算子在边缘检测中的应用。从Sobel 算子的原理出发,阐述了一阶导数与边缘检测的关系,以及Sobel 算子的卷积核和边缘检测过程。接着介绍了JavaCV的简介和Maven。

在技术的广袤天地里,本博客如精准罗盘。剖析前沿科技,深掘代码奥秘,以精炼笔触,带您穿越复杂技术迷宫,速达知识彼岸。 4250

[传统图像处理]边缘检测之----Sobel算子

一、作用: sobel算子是图像边缘检测的最重要的算子之一。 Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。 二、原理: Sobel算子输入的图像是灰度图,所以正常图片进行sobel算子提取边缘前,先要把图片转成灰度图。 边缘是指在图像上像素灰度变化最显著的地 方,边缘检测算子则利用图像边缘灰度的突变来检 测边缘。Sobel算子包含两组3×

ZJE 2万+

Python爬取网页数据并写入Excel

ChromeDriver下载链接:https://registry.npmmirror.com/binary.html?path=chromedriver/本例是从Excel表从读取数据,运用到网页中进行搜索,再将结果写入Excel表中。这里要先下载与Chrome版本相同的chromedriver(版本要相同!下载好后,将chromedriver路径正确配置在环境变量中。刚才爬了一些数据,分享一下代码。

weixin_68443051的博客 2519

图像边缘检测——Sobel 算子

本文介绍了Sobel算子原理,给出其水平和垂直方向的卷积核公式,并基于OpenCV实现边缘检测过程,包括图像灰度化、卷积运算、梯度幅值计算和二值化处理。

2511_93048387的博客 1115

用AI+Playwright实现零代码UI自动化测试:以登录页面为例的实战指南

本文详细介绍了如何利用AI与Playwright结合实现零代码UI自动化测试,特别以登录页面为例进行实战演示。通过自然语言描述生成测试脚本,大幅降低技术门槛,提升测试效率,并支持跨浏览器验证。适合非技术人员快速上手专业级自动化测试。

weixin_28842269的博客 402

快速了解Spyder

一 面板介绍菜单栏:放置所有功能工具栏:放置快捷菜单,可以通过菜单栏中的View的Toolbars的复选框来勾选工作区:写代码的地方属性页的标题栏:可以显示当前代码的名字和位置查看栏:查看文件、调试时的对象及变量输出栏:查看程序的输出信息,也可以作为shell终端来输入Python语句状态栏:用来显示当前文件权限、编码,光标指向位置和系统内存二 注释功能注释功能为编写代码很常用功能,下面介绍Spy...

实践求真知 1万+

数字图像处理第三章边缘检测(Sobel算子、Laplace算子)

边缘 边缘(edge)是指图像局部强度变化最显著的部分。主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础。 图像强度的显著变化可分为: 阶跃变化函数,即图像强度在不连续处的两边的像素灰度值有着显著的差异; 线条(屋顶)变化函数,即图像强度突然从一个值变化到另一个值,保持一较小行程后又回到原来的值。 图像的边缘有方向和幅度两个属性,沿边缘方向像素变化平缓,垂直于边缘方向像素变化剧烈.边缘上的这种变化可以用微分算子检测出来,通常用一阶或二阶导

wangjia2575525474的博客 9411

MySQL等保三级合规实践:如何安全配置root账户的本地与受信主机登录策略

本文详细介绍了MySQL在等保三级合规框架下如何安全配置root账户的本地与受信主机登录策略。通过分析root账户的特殊保护需求,提供三种安全加固方案,包括限制访问范围、限定登录IP和完全禁止远程登录,并指导创建安全的远程管理账户。文章还涵盖了密码策略强化、日志审计配置和网络层防护等关键合规要求,帮助用户实现MySQL的等保三级全面合规。

weixin_42522964的博客 260

使用opencv的Sobel算子实现图像边缘检测

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化,包括深度不连续、表面方向不连续、物质属性变化和场景照明变化。边缘检测特征是提取中的一个研究领域。图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 3348

TBtools的序列提取步骤

本教程详细介绍了如何使用TBtools软件从原来的FASTA序列中提取特定的DNA序列。

weixin_47509995的博客 1万+

电工电子实验——3BIT延时电路的设计与实现

设计一个 3BIT延时电路。 设计分析: Ⅰ.根据触发器的特性,只有来两个触发脉冲时才能恢复到原来的状态。也就是说触发器的输出信号比触发信号延迟了一个触发脉冲周期即1bit。据此3bit就需要3个触发器。 Ⅱ.输出要可控就要加一控制器,可用选择器实现。 Ⅲ.为便于观察输出信号的延迟,可设计一个F1信号。

qq_55543315的博客 1128

OpenCV 图像处理三(图像梯度--边缘检测【图像梯度、Sobel 算子、 Scharr 算子、 Laplacian 算子、Canny 边缘检测】)

边缘检测并非万能,边缘检测虽然能够检测出边缘,但边缘是不连续的,检测到的边缘并不是一个整体。图像轮廓是指将边缘连接起来形成的一个整体,用于后续的计算。为了避免信息丢失,推荐使用更高的数据类型来进行计算,例如 cv2.CV_64F,即64位浮点型。这样,计算结果将以浮点数的形式保存,包括负数。然后,可以通过取绝对值或其他操作将其映射为需要的数据类型,例如 cv2.CV_8U,即8位无符号整数。

m0_74154295的博客 4513

扣子(Coze)搭建智能体完整实战指南 —— 从零基础入门到写小说及其他需求扩展开发

随着大语言模型进入应用爆发期,我们正在经历从“寻找提示词”向“构建智能体”的范式转移。扣子(Coze)作为字节跳动推出的一站式AI智能体开发与运营平台,极大地降低了AI应用开发的门槛,让非技术人员也能快速搭建具备感知、决策、行动能力的智能体。 本文将手把手带你从零开始,在扣子平台上搭建一个功能完备的**小说创作智能体**,并基于此展示如何将同一套架构扩展到其他需求场景。无论你是写作爱好者、内容创作者,还是希望用AI赋能日常工作的职场人士,这套完整的技术方案都将帮助你快速上手。

huanghm88的专栏 638

七、图像边缘检测之 Sobel、Scharr、拉普拉斯算子、Canny

目录 一、Sobel 1、理论基础 2、Sobel算子函数及使用 (1)Sobel算子 (2)代码实例 二、Scharr 三、Sobel和Scharr比较 四、Laphlacian 五、Canny边缘检测 1、原理 2、代码实例 一、Sobel 1、理论基础 p5点处的水平方向梯度计算 p5点处竖直方向的梯度 图像的每一个像素的横向及纵向灰度值通过以下公式结...

嘻哈吼嘿呵的博客 3210

【AI编程干货】Vibe Coding 技巧(适用于AI编程IDE)

用 AI 写代码这件事门槛低,谁都能对着对话框输入几句话让它生成代码,但生成的东西能不能用、出了问题能不能兜住,这中间的差距比想象中大得多。 我从去年开始把 AI 编码工具作为主力开发手段,中间经历过项目失控、代码雪崩、反复返工,慢慢摸索出一套相对稳定的工作方式。这篇把核心的五个习惯拆开聊聊,都是实际项目里验证过的。

blues_C的博客 621

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

matlab图像边缘检测——sobel算子

Sobel算子是一种常用的边缘检测算子,它可以通过计算像素点的梯度来检测图像中的边缘。该算子基于图像上某一点周围的像素值变化情况,通过卷积运算来计算水平方向和垂直方向上的梯度。Sobel算子使用两个3x3的模板进行卷积操作,分别对应水平方向和垂直方向的梯度计算。这两个模板分别称为Gx和Gy。通过将这两个模板与图像进行卷积操作,可以得到每个像素点在水平方向和垂直方向上的梯度值。然后,通过对这些梯度值取绝对值并取整数部分,可以得到每个像素点的梯度强度。

anxinbuxinan的博客 8215

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 使用Pytorch训练自己的语义分割网络
下一篇: NYUDv2数据集预处理——获得语义分割的图像和标签并着色
晓shuo
晓shuo 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域
博客等级 码龄6年 4万+粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓shuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值