应用带通滤波器进行划痕检测

news2024/10/1 21:33:11

案例要求:

图为HALCON中的例图“surface_scratch”,请提取出图中的划痕。

案例分析:

图中明亮程度不一,划痕颜色较淡,因此不能用灰度BLOB分析的方法提取出目标区域。因此,先构造一个带通滤波器,用于去除背景光线的干扰,再对得到的图像作BLOB分析,提取出图像中的划痕。

案例代码:

read_image (Image, 'surface_scratch')
invert_image (Image, ImageInverted)
get_image_size (Image, Width, Height)
*创建一个正弦形状的带通滤波器
gen_sin_bandpass (ImageBandpass, 0.4, 'none', 'rft', Width, Height)
*快速傅立叶变换
rft_generic (ImageInverted, ImageFFT, 'to_freq', 'none', 'complex', Width)
*带通滤波
convol_fft (ImageFFT, ImageBandpass, ImageConvol)
*反变换
rft_generic (ImageConvol, Lines, 'from_freq', 'n', 'byte', Width)
*从原图中得到划痕区域
threshold (Lines, Region, 5, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 5, 5000)
dilation_circle (SelectedRegions, RegionDilation, 5.5)
union1 (RegionDilation, RegionUnion)
reduce_domain (Image, RegionUnion, ImageReduced)
*将划痕区域连接成线
lines_gauss (ImageReduced, LinesXLD, 0.8, 3, 5, 'dark', 'false', 'bar-shaped', 'false')
union_collinear_contours_xld (LinesXLD, UnionContours, 40, 3, 3, 0.2, 'attr_keep')
select_shape_xld (UnionContours, SelectedXLD, 'contlength', 'and', 15, 1000)
gen_region_contour_xld (SelectedXLD, RegionXLD, 'filled')
union1 (RegionXLD, RegionUnion)
dilation_circle (RegionUnion, RegionScratches, 10.5)

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

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

相关文章

Linux编程 文件操作 creat open

文件描述符 文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。 启动一个进程之后,…

3.OpenFeign的使用

OpenFeign 文章目录 OpenFeign一. 什么是OpenFeign二. OpenFeign基础使用1.添加依赖2.配置Nacos配置信息3.在项目中开启OpenFeign4.编写OpenFeign调用代码5.调用OpenFeign接口 三. OpenFeign内置的超时重试机制1.配置超时重试2.覆盖Retryer对象 四.自定义超时重试机制1.自定义超…

vue3-生命周期

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue3-生命周期 目录 vue3生命周期 vue3生命周期钩子 1.1 onMounted() 1.2 onUpdated() 1.3 onU…

Airtest结合Poco对控件实施精准截图,学起来!

1.前言 最近在Q群内发现有个小伙伴提出了一个很有趣的脚本需求,想要实现“通过选择器获取到了控件,然后截图这个控件范围”,根据我们的Airtest的局部截图接口以及poco控件的属性查询接口是可以很快实现的~ 2.接口查找 首先我们需要知道我们…

什么软件可以做报表?

报表在现代企业和组织中扮演着重要角色。它们是数据汇总、分析和展示的重要工具,为管理层和决策者提供洞察和指导。但是,报表的制作并非易事。使用Excel或手写代码开发报表可能会带来一系列痛点,而现代化的解决方案——比如VeryReport报表软件…

分布式锁之传统锁回顾(一)

1. 传统锁回顾 1.1. 从减库存聊起 多线程并发安全问题最典型的代表就是超卖现象 库存在并发量较大情况下很容易发生超卖现象,一旦发生超卖现象,就会出现多成交了订单而发不了货的情况。 场景: 商品S库存余量为5时,用户A和B同…

智能导视电子指路牌是什么?

SVIP-3800系列智能电子指路牌也称智慧指路灯杆,智能指路牌,导航立柱,多功能指示牌,多功能路标,智能指路机器人,智能导视指路牌,问路导航机器人,智能路牌,叁仟智慧路牌、智…

电商数据采集|电商API接口接入|从京东平台获取商品SKU 主图 价格 详情数据

在进行API开发过程中,数据异常常常令人头痛。我们的API开车软件经过精心设计和测试,能够准确识别并及时处理各类数据异常。拥有稳定的运行环境,保障了您的开发进程不受干扰,让您的工作更加顺畅高效。 京东获得JD商品详情 API 返…

AI助力钢铁产业数字化,python基于YOLOv5开发构建钢铁产业产品智能自动化检测识别系统

AI为工业产业智能化数字化赋能早已不是什么新鲜事,越来越多的行业和领域开始更大范围去拥抱AI,享受科技带来的变革力量,在我们之前的文章中也有很多相关领域项目的实践经历,本文的核心目标就是想要基于钢铁领域产品数据来开发构建…

VirtualBox下win主机如何访问linux虚拟机文件夹

目录 ​编辑 方法1:通过VirtualBox自带的共享文件夹(Win->linux) 方法2:通过Samba方法本地网络访问(Linux->win) 我使用的VirtualBox版本为7.0.4,主机是Window系统,虚拟机是Linux系统 方法1:通过Vir…

易点易动设备管理系统提升设备能耗管理和设备状态监控效率

如今,能源效率和设备状态监控对于企业来说变得越发重要。传统的设备管理方式往往存在能耗浪费和难以实时监控设备状态的问题。为了解决这些问题,易点易动设备管理系统应运而生。本文将介绍易点易动设备管理系统的功能和优势,以及如何通过它提…

深度学习之六(自编码器--Autoencoder)

概念 自编码器(Autoencoder)是一种神经网络架构,用于无监督学习和数据的降维表示。它由两部分组成:编码器(Encoder)和解码器(Decoder)。 结构: 编码器(Encoder): 接收输入数据并将其压缩为潜在表示(latent representation),通常比输入数据的维度要低。编码器的…

Sam Altman回归OpenAI,新董事会成员曝光!

11月22日下午,OpenAI在社交平台宣布,在原则上已达成协议,让 Sam Altman重返 OpenAI担任首席执行官,并重组董事会。稍后会公布更详细的内容。 初始董事会成员包括前Salesforce联合首席执行官Bret Taylor(担任主席&…

【AI读论文】AutoML的8年回顾:分类、综述与趋势

论文标题:Eight years of AutoML: categorisation, review and trends 论文链接:https://link.springer.com/article/10.1007/s10115-023-01935-1 本文主要围绕自动机器学习(AutoML)展开了系统性的文献综述,总结了该领…

德迅云安全-德迅卫士:保障您的主机安全

主机安全是指保证主机在数据存储和处理的保密性、完整性、可用性,包括硬件、固件、系统软件的自身安全,以及一系列附加的安全技术和安全管理措施。 为什么要主机安全? 服务器一旦被黑客入侵,个人和企业面临以下安全风险&#xff…

基于springboot实现家政服务管理平台项目【项目源码+论文说明】

摘要 随着家政服务行业的不断发展,家政服务在现实生活中的使用和普及,家政服务行业成为近年内出现的一个新行业,并且能够成为大众广为认可和接受的行为和选择。设计家政服务管理平台的目的就是借助计算机让复杂的销售操作变简单,…

unity Toggle,初始时默认不选中,若选中则不可取消选中。不写码实现其效果

实现效果: 初始默认时: 选中时: 零代码实现: 步骤1 步骤2 步骤3

Pycharm设置文件头部声明注释

设置头部声明 英文版:点击file-->settings-->editor-->file and code templates-->选择Python Script 中文版如下: 复制如下内容 #!/usr/bin/env python # -*- coding: utf-8 -*- # Time : 2023/11/23 10:05 # Author : wyq # File …

Python + Docker 还是 Rust + WebAssembly?

在不断发展的技术世界中,由大语言模型驱动的应用程序,通常被称为“LLM 应用”,已成为各种行业技术创新背后的驱动力。随着这些应用程序的普及,用户需求的大量涌入对底层基础设施的性能、安全性和可靠性提出了新的挑战。 Python 和…

微信开放平台Android平台应用签名怎么填写

winR 输入cmd 进到本地签名文件的目录下 输入 keytool -list -v -keystore <keystore文件路径> -alias <别名>请将 <keystore文件路径> 替换为您的密钥库文件&#xff08;通常是 .jks 或 .keystore 文件&#xff09;的路径&#xff0c;而 <别名> 则是…