OpenCV(二十六):边缘检测(二)

news2024/10/3 6:31:31

目录

1.Laplacian算子边缘检测

原理:

Laplacian边缘检测函数Laplacian()

示例代码:

2.Canny算子边缘检测

原理:

Canny算法函数Canny()

示例代码:


1.Laplacian算子边缘检测

原理:

        Laplacian算子的原理基于图像的二阶导数。一阶导数可以帮助我们检测图像中的边缘,而二阶导数则可以检测边缘的交叉点,即图像中的角点。

Laplacian算子定义为二阶空间导数的和,在二维情况下用于图像处理,其离散形式如下:

L(x, y) = d^2(I(x, y)) / dx^2 + d^2(I(x, y)) / dy^2 

其中,I(x, y)表示图像中的像素值,d^2表示偏导数,dx表示在X方向上的导数,dy表示在Y方向上的导数。

Laplacian算子可以通过应用离散卷积来计算。一种常见的离散Laplacian算子模板如下:

 

通过将该模板与图像进行卷积操作,我们可以计算图像中每个像素的Laplacian响应。

具体步骤如下:

  1. 将图像转换为灰度图像(如果不是灰度图像)。
  2. 对图像应用Laplacian算子的离散模板。
  3. 对卷积结果进行阈值处理,以提取边缘信息。
  4. 可选地对阈值处理后的边缘图像进行非最大抑制和边缘连接等后处理操作。

Laplacian算子的输出结果是一个表示边缘的高频分量图像。边缘通常显示为明亮像素与暗亮像素之间的边界。边缘的宽度和强度取决于Laplacian算子的大小和图像中的灰度变化。

Laplacian边缘检测函数Laplacian()

void cv::Laplacian ( InputArray src,

OutputArray dst,

int        ddepth,

int     ksize = 1,

double   scale = 1,

double    delta =0,

int     borderType = BORDER DEFAULT

)

  • src:输入原图像,可以是灰度图像和彩色图像。
  • dst: 输出图像,与输入图像src具有相同的尺寸和通道数。
  • ddepth: 输出图像的数据类型(深度),根据输入图像的数据类型不同拥有不同的取值范围。
  • ksize:滤波器的大小,必须为正奇数。
  • scale:对导数计算结果进行缩放的缩放因子,默认系数为1,不进行缩放。
  • delta:偏值,在计算结果中加上偏值。
  • borderType:像素外推法选择标志。
示例代码:
void Laplacian_f(Mat image){
    Mat gray;
    cvtColor(image,gray,COLOR_BGR2GRAY);
    Mat result,result_g,result_G;
    //未滤波提取边缘
    Laplacian(gray,result,CV_16S,3,1,0);
    convertScaleAbs(result,result);
    //滤波后提取边缘
    GaussianBlur(gray,result_g,Size(3,3),5,0);//高斯滤波
    Laplacian(result_g,result_G,CV_16S,3,1,0);
    convertScaleAbs(result_G,result_G);
    //显示图像
    imwrite("/sdcard/DCIM/result.png",result);
    imwrite("/sdcard/DCIM/result_G.png",result_G);
}

                   

  (未滤波提取边缘图像)                            (滤波后提取边缘图像)

2.Canny算子边缘检测

原理:

Canny算法函数Canny()

void cv::Canny ( InputArray image,

OutputArray edges,

double  threshold1,

double   threshold2,

int  apertureSize = 3,

bool   L2gradient = false

)

  • image:输入图像,必须是CV 8U单通道或者三通道图像
  • edges:输出图像,与输入图像具有相同尺寸的单通道图像,且数据类型为CV 8U。
  • threshold1:第一个滞后阙值
  • threshold2:第二个滞后阀值
  • apertureSize: Sobel算子的直径
  • L2gradient:计算图像梯度幅值的标志
示例代码:
void Canny_f(Mat image){
    Mat gray;
    cvtColor(image,gray,COLOR_BGR2GRAY);
    Mat resultHigh,resultLow,resultG;
    //大阈值检测图像边缘
    Canny(image,resultHigh,100,200,3);
    //小阈值检测图像边缘
    Canny(image,resultLow,20,40,3);
    //高斯模糊后检测图像边缘
    GaussianBlur(gray,resultG,Size(3,3),5);
    Canny(resultG,resultG,100,200,3);
    //显示图像
    imwrite("/sdcard/DCIM/resultHigh.png",resultHigh);
    imwrite("/sdcard/DCIM/resultLow.png",resultLow);
    imwrite("/sdcard/DCIM/resultG.png",resultG);
}

(大阈值检测图像边缘)            (小阈值检测图像边缘)            (高斯模糊后检测图像边缘)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IAST百科全书第16期:IAST与RASP的区别

Hello 大家好,欢迎来到新一期IAST百科全书,之前有同学提问IAST和RASP是不是非常类似,今天就专门给大家展开讲讲。 如果说SAST是从“内部”测试应用程序,DAST是从“外部”测试,那IAST就是“从内到外”进行测试&#xf…

伪静态web.config常见规则写法与参数介绍说明

伪静态web.config常见规则写法与参数介绍说明. 示例1&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <configuration><system.webServer><rewrite><rules><rule name"规则 1" stopProcessing"tru…

python Playwright优化页面等待和处理异步操作

在使用 Playwright 进行页面自动化时&#xff0c;优化页面等待和处理异步操作是非常重要的&#xff0c;可以提高脚本的稳定性和执行效率。 优化页面等待和处理异步操作的建议 **1. 使用正确的等待条件&#xff1a;**Playwright 提供了多种等待条件&#xff0c;如等待元素出现…

对时序数据进行分类与聚类

我在最近的工作中遇到了一个问题&#xff0c;问题是我需要根据银行账户在一定时间内的使用信息对该账户在未来的一段时间是否会被销户进行预测。这是一个双元值的分类问题&#xff0c;只有两种可能&#xff0c;即会被销户和不会被销户。针对这个问题一般来说有两种解决策略。 …

Python学习 -- logging模块

logging 模块是 Python 中用于记录日志的标准库&#xff0c;它提供了丰富的功能&#xff0c;可以帮助开发者进行日志记录和管理。以下是关于logging模块的详细使用方式&#xff0c;包括日志级别、处理流程、Logger 类、Handler 类、Filter 类、Formatter 类以及模块中常用函数等…

H5移动端便捷兼容测试方式

一、准备&#xff1a; 1、谷歌浏览器 2、H链接 3、主流设备分辨率、尺寸 二、步骤&#xff1a; 1、打开F12&#xff0c;选择手机模式 2、看顶部设备信息&#xff0c;点击&#xff0c;县级弹窗最底部的edit进入编辑模式 3、添加想要测试的设备&#xff0c;设备的宽高需要按照…

Linux下的系统编程——认识进程(七)

前言&#xff1a; 程序是指储存在外部存储(如硬盘)的一个可执行文件, 而进程是指处于执行期间的程序, 进程包括 代码段(text section) 和 数据段(data section), 除了代码段和数据段外, 进程一般还包含打开的文件, 要处理的信号和CPU上下文等等.下面让我们开始对Linux进程有个…

数学建模篇---2022国赛C题(二)(全程python,完整论文和代码可取!)

接着上回我们继续第三题 问题 3 对附件表单 3 中未知类别玻璃文物的化学成分进行分析&#xff0c;鉴别其所属类型&#xff0c;并对 分类结果的敏感性进行分析。 我们的分析&#xff1a; 基于问题二的分类模型&#xff0c;计算出每个待测样本点与簇中心的平方欧式距离&#xff0…

Windows 10以后的版本默认不会启用SMBv1

文章目录 SMBv1的历史故事SMBv1 仍然可以在未预装的版本重新安装检查计算机是否启用SMBv11&#xff0c;Server端检测SMBv1是否启用2&#xff0c;客户端检测SMBv1是否启用 Windows 如何禁用SMBv11&#xff0c;Server端用powershell禁用&#xff1a;2&#xff0c;客户端禁用方法&…

链条输送机如何润滑

润滑是使用机械设备过程中不可或缺的保养工作&#xff0c;链条输送机也不例外&#xff0c;但对于第一次使用链条机的用户来讲&#xff0c;对于哪个部位需要润和以及如何润滑都是一头雾水&#xff0c;今天艾讯就从专业的角度来和您分享一下链条输送机如何润滑的问题。 1、应切断…

vue3 自动导入图片配置

1 npm i vite-plugin-vue-images -D 2 vite.configts.ts 文件中配置 import { defineConfig } from vite import ViteImages from vite-plugin-vue-images export default defineConfig({ //插件中导入指定图片存放的目录 plugins: [ ViteImages({ dirs: [src/assets] }) ] …

霍尔效应的本质

霍尔效应是电磁效应的一种&#xff0c;这一现象是美国物理学家霍尔&#xff08;E.H.Hall&#xff0c;1855—1938&#xff09;于1879年在研究金属的导电机制时发现的。 当电流垂直于外磁场通过半导体时&#xff0c;载流子发生偏转&#xff0c;垂直于电流和磁场的方向会产生一附加…

网络编程套接字 | UDP套接字

前面的文章中我们叙述了网络编程套接字的一些预备知识点&#xff0c;从本文开始我们就将开始UDP套接字的编写。本文中的服务端与客户端都是在阿里云的云服务器进行编写与测试的。 udp_v1 在v1的版本中我们先来使用一下前面讲过得一些接口&#xff0c;简单的构建一个udp服务器…

Oracle数据库环境变量配置以及可能遇到的问题解决

一、如何配置Oracle数据库环境变量&#xff08;以win10为例&#xff09; 1、找到此电脑&#xff0c;鼠标右键&#xff0c;点击属性。 2、点击属性成功后&#xff0c;进入如下页面&#xff0c;找到“高级系统设置”&#xff0c;点击进入。 3、找到环境变量&#xff0c;点击进入…

深眸科技自研轻辙视觉引擎,以AI机器视觉赋能杆号牌识别与分拣

电线杆号牌作为电力行业标识的一种&#xff0c;相当于电线杆的“身份证”&#xff0c;担负着宣传电力知识、安全警示的作用&#xff0c;用于户外使用标记输电线路电压等级、线路名称、杆塔编号等&#xff0c;能够清晰地记录电力线路杆的信息&#xff0c;并为电力线路的更改以及…

小红书下一个爆款趋势锁定 | 秋冬种草指南

今夏「多巴胺」风靡全网&#xff0c;现秋日又捎来一股名为「美拉德」的风……俨然一副“新晋顶流”的架势。 如何抓住这一新趋势&#xff1f;本期千瓜将锁定小红书下一个爆款内容——「美拉德」&#xff0c;剖析笔记与底层逻辑&#xff0c;助力品牌洞见先机&#xff0c;运筹布…

虚拟数字人直播软件实现带货功能,成为新一代直播风口!

随着短视频带货市场的不断发展&#xff0c;虚拟数字人直播技术逐渐成为热门话题。而在现如今的市场趋势下直播带货则成为了一种火热的营销方式。那么&#xff0c;虚拟数字人直播软件是否可以结合起来&#xff0c;实现无人直播带货的效果呢&#xff1f;让我们来了解一下。 灰豚数…

VSCode md绘制图形mermaid记录

官网&#xff1a;Mindmap | Mermaid 测试还是不错&#xff1a;

【Day-31慢就是快】代码随想录-二叉树-中序和后序遍历构造二叉树

根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 思路 首先知道怎么画&#xff0c;然后写代码流程。 以 后序数组的最后一个元素为切割点&#xff0c;先切中序数组&#xff0c;根据中序数组&#xff0c;反过来再切后序数组。一层一层切下去…

最佳策略app平台传出的绝密理财法,这是给散户们的好机会

昨天&#xff0c;记者在走访各大超市的时候发现一个奇怪的现象&#xff1a;普遍的市民朋友在选购商品的时候基本上都会选择那些打折促销的&#xff0c;有些促销的商品甚至是很久之后才会用的&#xff0c;他们也会给带上。而对于那些不打折或者价格高昂的商品&#xff0c;基本上…