当前位置: 首页 > news >正文

HALCON边缘检测

HALCON边缘检测

边缘检测的算法分类

基于查找的方法

通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向,是基于一阶导数的边缘检测算法

基于零穿越的方法

通过寻找图像二阶导数零穿越来寻找边界,通常是拉普拉斯过零点或者非线性差分表示的过零点,是基于二阶导数的边缘检测算法

Prewitt算子

通过利用像素点上下、左右邻点灰度差,在边缘处达到极值的方法检测边缘。它的方程和Sobel算子完全一样,因此都考虑了邻域信息,所不同的是平滑部分的权值有些差异,因此对噪声具有一定的抑制能力,但不能完全排除检测结果中出现的虚假边缘。Prewitt算子不仅能检测边缘点,而且能抑制噪声的影响,因此对灰度和噪声较多的图像处理得较好。

卷积模板如下

A= [ 1 1 1 0 0 0 − 1 − 1 − 1 ] \left[ \begin{matrix} &1 &1 &1\\ &0 &0 &0\\ &-1 &-1 &-1\\ \end{matrix} \right] 101101101

B= [ 1 0 − 1 1 0 − 1 1 0 − 1 ] \left[ \begin{matrix} &1 &0 &-1\\ &1 &0 &-1\\ &1 &0 &-1\\ \end{matrix} \right] 111000111

prewitt_amp (ImageReduced, ImageEdgeAmp)
threshold (ImageEdgeAmp, Regions, 25, 80)

检出效果
在这里插入图片描述

Kirsch算子

Kirsch算法由K0K7八个方向的模板决定,将K0K7的模板元素分别与当前像素点的3×3模板区域的像素点相乘,然后选八个值中最大的值作为中央像素的边缘强度。

卷积模板如下

A= [ − 3 − 3 5 − 3 0 5 − 3 − 3 5 ] \left[ \begin{matrix} &-3 &-3 &5\\ &-3 &0 &5\\ &-3 &-3 &5\\ \end{matrix} \right] 333303555

B= [ − 3 5 5 − 3 0 5 − 3 − 3 − 3 ] \left[ \begin{matrix} &-3 &5 &5\\ &-3 &0 &5\\ &-3 &-3 &-3\\ \end{matrix} \right] 333503553

C= [ 5 5 5 − 3 0 − 3 − 3 − 3 − 3 ] \left[ \begin{matrix} &5 &5 &5\\ &-3 &0 &-3\\ &-3 &-3 &-3\\ \end{matrix} \right] 533503533

D= [ 5 5 − 3 5 0 − 3 − 3 − 3 − 3 ] \left[ \begin{matrix} &5 &5 &-3\\ &5 &0 &-3\\ &-3 &-3 &-3\\ \end{matrix} \right] 553503333

E= [ 5 − 3 − 3 5 0 − 3 5 − 3 − 3 ] \left[ \begin{matrix} &5 &-3 &-3\\ &5 &0 &-3\\ &5 &-3 &-3\\ \end{matrix} \right] 555303333

F= [ − 3 − 3 − 3 5 0 − 3 5 5 − 3 ] \left[ \begin{matrix} &-3 &-3 &-3\\ &5 &0 &-3\\ &5 &5 &-3\\ \end{matrix} \right] 355305333

G= [ − 3 − 3 − 3 − 3 0 − 3 5 5 5 ] \left[ \begin{matrix} &-3 &-3 &-3\\ &-3 &0 &-3\\ &5 &5 &5\\ \end{matrix} \right] 335305335

H= [ − 3 − 3 − 3 − 3 0 5 − 3 5 5 ] \left[ \begin{matrix} &-3 &-3 &-3\\ &-3 &0 &5\\ &-3 &5 &5\\ \end{matrix} \right] 333305355

kirsch_amp (ImageReduced, ImageEdgeAmp1)
threshold (ImageEdgeAmp1, Regions2, 160, 255)

检出效果

在这里插入图片描述

相关文章:

  • ATC‘22顶会论文RunD:高密高并发的轻量级 Serverless 安全容器运行时 | 龙蜥技术
  • 一篇经典的 Redis 面试资料「处女座笔记」「吐血推荐」...
  • 李沐d2l(十一)--目标检测
  • 美国上周初请人数23.2万人是两个月最低水平 美联储加息75基点稳了
  • 【技术美术知识储备】图形渲染管线1.0-基本概念CPU负责的应用阶段
  • 教你如何使用关键词获取淘宝和天猫的商品信息
  • lodash笔记(语言篇)
  • elasticsearch 6.3.2 集群配置
  • 操作系统复习:线程
  • Web3社交基础设施SBT
  • SAP-ABAP-SELECT语法SQL语法详解
  • 化妆品怎么在百度百科上创建词条,品牌上百度百科的条件和操作
  • DOM--事件
  • 这12款idea插件,能让你代码飞起来
  • 基于springboot+vue的新生宿舍管理系统 elementui
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ES6 学习笔记(一)let,const和解构赋值
  • ES学习笔记(12)--Symbol
  • gcc介绍及安装
  • HTML-表单
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Javascript 原型链
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • PHP CLI应用的调试原理
  • Solarized Scheme
  • Terraform入门 - 3. 变更基础设施
  • 半理解系列--Promise的进化史
  • 构建工具 - 收藏集 - 掘金
  • 老板让我十分钟上手nx-admin
  • 两列自适应布局方案整理
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 数组的操作
  • 说说动画卡顿的解决方案
  • 携程小程序初体验
  • 移动端唤起键盘时取消position:fixed定位
  • ​ssh免密码登录设置及问题总结
  • #define、const、typedef的差别
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #pragma data_seg 共享数据区(转)
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)计算机毕业设计高校学生选课系统
  • (四)库存超卖案例实战——优化redis分布式锁
  • (转)c++ std::pair 与 std::make
  • (转)可以带来幸福的一本书
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .net core 6 集成和使用 mongodb
  • .net 提取注释生成API文档 帮助文档
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET轻量级ORM组件Dapper葵花宝典
  • .net通用权限框架B/S (三)--MODEL层(2)