halcon sobel边缘检测sobel_amp

目录

  • sobel_amp(算子)
    • 描述
    • 参数

sobel_amp(算子)

sobel_amp - 使用Sobel算子检测边缘(幅度)。

sobel_amp(图片:边缘图像:滤波器方式,掩膜大小:)

描述

sobel_amp计算图像的一阶导数,并用作边缘检测器。
过滤器基于以下过滤器掩码:

A =
1 2 1
0 0 0
-1 -2 -1

B =
1 0 -1
2 0 -2
1 0 -1
根据所选的过滤器类型,这些掩码的使用方式不同。 (在下文中,a和b表示将图像与A和B卷积为一个特定像素的结果。)
在这里插入图片描述
这里,thin(x)分别对应于垂直最大值(掩模A)和水平最大值(掩模B)的x,否则为0。因此,对于’thin_sum_abs’和’thin_max_abs’,渐变图像被稀疏化。
对于过滤器类型’x’和’y’,如果输入图像是byte类型,则输出图像的类型为int1,否则为int2类型。
对于尺寸为3x3的Sobel算子,直接应用相应的滤波器A和B,而对于较大的滤波器尺寸,首先使用尺寸为Size-2的高斯滤波器(参见gauss_image)或二项式滤波器(参见binomial_filter)对输入图像进行平滑处理。
为上述FilterType值选择高斯滤波器。这里,必须使用Size = 5,7,9,11或13。
通过将“_binomial”附加到FilterType的上述值来选择二项式过滤器。这里,可以在5到39之间选择大小。
此外,可以通过在Size中传递两个值来选择不同的平滑列和行方向的量。这里,Size的第一个值对应于掩模宽度(列方向上的平滑),而第二个值对应于二项式滤波器的掩模高度(行方向的平滑)。
二项式滤波器只能用于byte,uint2和real类型的图像。由于平滑减小了边缘幅度,在这种情况下,边缘幅度乘以因子2以防止信息丢失。因此,
sobel_amp(I,E,过滤式,S)

for Size > 3在概念上等同于

 scale_image(I,F,2,0)gauss_image(F,G,S-2)sobel_amp(G,E,FilterType,3)

or to

 scale_image(I,F,2,0)binomial_filter(F,G,S[0]-2,S[1]-2)sobel_amp(G,E,FilterType,3).

对于sobel_amp,实现了使用SIMD技术的FilterType =‘sum_abs’的特殊优化。这些特殊优化的实际应用由系统参数’mmx_enable’控制(参见set_system)。如果’mmx_enable’设置为’true’(并且SIMD指令集可用),则使用SIMD技术执行内部计算。请注意,SIMD技术在大型紧凑输入区域表现最佳。根据输入区域和硬件的功能,使用SIMD技术执行sobel_amp甚至可能比非使用SIMD技术花费更多时间。

sobel_amp可以在OpenCL设备上执行,用于过滤器类型’sum_abs’,‘sum_sqrt’,‘x’和’y’(以及它们的二项式变体)。请注意,当对Size> 3使用高斯过滤时,结果可能与CPU实现不同。

支持OpenCL计算设备。
多线程类型:可重入(与非独占运算符并行运行)。
多线程范围:全局(可以从任何线程调用)。
在元组级别自动并行化。
在通道级别自动并行化。
在域级别自动并行化。

参数

Image (input_object)(多通道 - )图像(-array)→对象(byte / int2 / uint2 / real)
输入图像。

EdgeAmplitude(output_object)(多通道 - )图像(-array)→对象(int1 / int2 / uint2 / real)
边缘幅度(梯度幅度)图像。

FilterType (input_control)string→(string)
过滤器类型。
默认值:‘sum_abs’
值列表:
‘sum_abs’,‘sum_abs_binomial’,‘sum_sqrt’,‘sum_sqrt_binomial’,‘thin_max_abs’,‘thin_max_abs_binomial’,‘thin_sum_abs’,‘thin_sum_abs_binomial’,‘x’,‘x_binomial’,‘y’,'y_binomial “
值列表(用于计算设备):
‘sum_abs’,‘sum_sqrt’,‘x’,‘y’,‘sum_abs_binomial’,‘sum_sqrt_binomial’,‘x_binomial’,‘y_binomial’

Size (input_control)整数(-array)→(整数)
滤波掩膜的大小。
默认值:3
值列表:3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39

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

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

相关文章

es中的一些知识点记录

1. forcemerge接口 强制段合并,设置为1时,是期望最终只有1个索引段。但实际情况是,合并的结果是段的总数会减少,但仍大于1,可以多次执行强制合并的命令。 设置的的目标值越小。合并消耗的时间会越久。 curl -XPOST htt…

通过border来实现各种三角符号

很长时间没有动笔了,最近学的东西很杂很乱!又有点丢了西瓜捡芝麻,走马观花,瞻前顾后的感觉! 因此,我决定一步步来,化繁为简,今天就从border入手。 很多时候我们都会需要一个三角形或…

MFC封装API

一、Win32Application Architecture 一个Win32 Application Architecture的代码结构如下: LRESULT CALLBACK WinWordsProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); //定义回调处理消息函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPr…

4.10下午

转载于:https://www.cnblogs.com/yanyuying/p/6690662.html

halcon sobel 边缘检测 sobel_dir

目录sobel_dir(算子)描述参数sobel_dir(算子) sobel_dir - 使用Sobel算子检测边缘(振幅和方向)。 sobel_dir(Image : EdgeAmplitude, EdgeDirection : FilterType, Size : ) 描述 sobel_dir计算图像的一…

【译】x86程序员手册37-第10章 初始化

Chapter 10 Initialization 第10章 初始化 After a signal on the RESET pin, certain registers of the 80386 are set to predefined values. These values are adequate to enable execution of a bootstrap program, but additional initialization must be performed by s…

秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别

本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是…

如何传输文件到linux服务器?

我们知道,云主机文件传输是一件相对复杂的事情,经常需要搭建FTP服务器或者是借助其他工具来完成。下面为大家介绍一种简单易操作的传输文件到Linux服务器的方法。 Linux文件传输同Windows文件传输一样,我们为每一台Linux主机配置了一个1G的网…

秒杀多线程第三篇 原子操作 Interlocked系列函数

上一篇《多线程第一次亲密接触 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是否运行出错。这也非常类似于统计一个网站每天有多少用户登录,每个用户登录用一个…

PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化...

标签 PostgreSQL , Oracle , index skip scan , 非驱动列条件 , 递归查询 , 子树 背景 对于输入条件在复合索引中为非驱动列的,如何高效的利用索引扫描? 在Oracle中可以使用index skip scan来实现这类CASE的高效扫描: INDEX跳跃扫描一般用在W…

如何确定镜头CCD靶面尺寸?

在组建机器视觉系统时,需要选用适合实际应用的产品。今天,中国机器视觉商城的培训课堂为您带来的是关于工业镜头CCD靶面尺寸的确定方法。 在选择镜头时,我们通常要注意一个原则:即小尺寸靶面的CCD可使用对应规格更大的镜头&#x…

(十二)洞悉linux下的Netfilteramp;iptables:iptables命令行工具源码解析【下】

iptables用户空间和内核空间的交互 iptables目前已经支持IPv4和IPv6两个版本了,因此它在实现上也需要同时兼容这两个版本。iptables-1.4.0在这方面做了很好的设计,主要是由libiptc库来实现。libiptc是iptables control library的简称,是Netfi…

恢复Ext3下被删除的文件(转)

前言 下面是这个教程将教你如何在Ext3的文件系统中恢复被rm掉的文件。 删除文件 假设我们有一个文件名叫 ‘test.txt’ $ls -il test.txt15 -rw-rw-r– 2 root root 20 Apr 17 12:08 test.txt 注意:: “-il” 选项表示显示文件的i-node号(15)…

TCP UDP HTTP 的关系和区别

TCP UDP HTTP 三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有HTTP、FTP、TELNET、SMTP、DNS等协议。 TCP…

微信开放平台全网发布时,检测失败 —— C#

主要就是三个:返回API文本消息,返回普通文本消息,发送事件消息 --会出现失败的情况 (后续补充说明:出现检测出错,不一定是代码出现了问题,也有可能是1.微信方面检测时出现服务器请求失败&…

Zabbix 钉钉报警

话不多说,咱们直接进入正题钉钉报警时基于zabbix,访问钉钉应用接口去推送的报警消息,所以我们需要一个在钉钉创建一个报警应用1、 我做的钉钉报警是基于钉钉自定义应用进行推送的所以需要登录钉钉管理后台进行创建(zabbix自定义应…

于敦德:途牛五大战略纵深不惧同质化竞争

于敦德说,途牛已经在目的地、出发地、产品系列、客户和品牌五个领域建立起了纵深壁垒,不担心任何局部竞争,将坚决把局部同质化战争打到底。 一个行业的两种公司 包括旅游在内的很多行业通常都有两种公司:…

自定义线程的方式

2019独角兽企业重金招聘Python工程师标准>>> package com.javaxxz.test;public class Demo extends Thread {/*** 创建线程的方式* 方式一:* 1、自定义一个类继承Thread类* 2、重写Thread类的run方法,把自定线程的任务代码写在run方法中* …

20155204 2016-2017-2 《Java程序设计》第8周学习总结

学号 2016-2017-2 《Java程序设计》第X周学习总结 教材学习内容总结 想要取得channel的操作对象,可以使用channels类,它定义了静态方法newChannel()。Buffer的直接子类们都有一个alloocate()方法,可以让你指定Buffer容量。1.java.util.loggin…

HALCON示例程序train_characters_ocr.hdev使用SVM分类器训练字体

HALCON示例程序train_characters_ocr.hdev使用SVM分类器训练字体 小哥哥小姐姐觉得有用点个赞呗! 示例程序源码(加注释) 蓝色字体均为算子解释链接,可以前往查看解答 关于显示类函数解释 read_image (Image, ‘ocr/chars_tra…