基于Halcon学习的缺陷检测【一】detect_mura_blur.hdev
这个例子展示了如何在模糊图像中检测mura缺陷
总代码:
*频域+差分+空间域
dev_close_window ()
dev_update_off ()
Path := 'lcd/mura_defects_blur_'
read_image (Image, Path + '01')
get_image_size (Image, Width, Height)
dev_open_window_fit_size (0, 0, Width, Height, 640, 480, WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (3)
dev_set_color ('red')
ScaleFactor := 0.4*根据要提取的线条的最大宽度和对比度,计算线条的Sigma、Low和High参数。
calculate_lines_gauss_parameters (17, [25,3], Sigma, Low, High)
for f := 1 to 3 by 1*1采集图像read_image (Image, Path + f$'.2i')*转换为3通道图像decompose3 (Image, R, G, B)*2预处理之频域变换(建立背景+高斯滤波)* correct side illumination*正确的侧面照明*快速傅里叶变换rft_generic (B, ImageFFT, 'to_freq', 'none', 'complex', Width)*生成一个高斯滤波器gen_gauss_filter (ImageGauss, 100, 100, 0, 'n', 'rft', Width, Height)*在频域中用滤波器卷积图像。convol_fft (ImageFFT, ImageGauss, ImageConvol)*傅里叶逆变换rft_generic (ImageConvol, ImageFFT1, 'from_freq', 'none', 'byte', Width)*差分在空间域--lines_gausssub_image (B, ImageFFT1, ImageSub, 2, 100)* perform the actual inspection*按给定因子缩放图像。zoom_image_factor (ImageSub, ImageZoomed, ScaleFactor, ScaleFactor, 'constant')* avoid border effects when using lines_gauss()*使用时lines_gauss()避免边界效果*获取图像的区域。get_domain (ImageZoomed, Domain)*腐蚀erosion_rectangle1 (Domain, RegionErosion, 7, 7)*抠图reduce_domain (ImageZoomed, RegionErosion, ImageReduced)*检测线条及其宽度。lines_gauss (ImageReduced, Lines, Sigma, Low, High, 'dark', 'true', 'gaussian', 'true')*进行仿射变换hom_mat2d_identity (HomMat2DIdentity)hom_mat2d_scale_local (HomMat2DIdentity, 1 / ScaleFactor, 1 / ScaleFactor, HomMat2DScale)affine_trans_contour_xld (Lines, Defects, HomMat2DScale)* dev_display (Image)dev_display (Defects)if (f < 3)disp_continue_message (WindowHandle, 'black', 'true')stop ()endif
endfor
逐段分析:
*频域+差分+空间域
dev_close_window ()
dev_update_off ()
Path := 'lcd/mura_defects_blur_'
read_image (Image, Path + '01')
get_image_size (Image, Width, Height)
dev_open_window_fit_size (0, 0, Width, Height, 640, 480, WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (3)
dev_set_color ('red')
ScaleFactor := 0.4*根据要提取的线条的最大宽度和对比度,计算线条的Sigma、Low和High参数。
calculate_lines_gauss_parameters (17, [25,3], Sigma, Low, High)
for f := 1 to 3 by 1*1采集图像read_image (Image, Path + f$'.2i')
*转换为3通道图像decompose3 (Image, R, G, B)
*快速傅里叶变换rft_generic (B, ImageFFT, 'to_freq', 'none', 'complex', Width)
*生成一个高斯滤波器gen_gauss_filter (ImageGauss, 100, 100, 0, 'n', 'rft', Width, Height)*在频域中用滤波器卷积图像。convol_fft (ImageFFT, ImageGauss, ImageConvol)*傅里叶逆变换rft_generic (ImageConvol, ImageFFT1, 'from_freq', 'none', 'byte', Width)
*差分在空间域--lines_gausssub_image (B, ImageFFT1, ImageSub, 2, 100)
*按给定因子缩放图像。zoom_image_factor (ImageSub, ImageZoomed, ScaleFactor, ScaleFactor, 'constant')*使用时lines_gauss()避免边界效果*获取图像的区域。get_domain (ImageZoomed, Domain)*腐蚀erosion_rectangle1 (Domain, RegionErosion, 7, 7)
*抠图reduce_domain (ImageZoomed, RegionErosion, ImageReduced)
*检测线条及其宽度。lines_gauss (ImageReduced, Lines, Sigma, Low, High, 'dark', 'true', 'gaussian', 'true')
*进行仿射变换hom_mat2d_identity (HomMat2DIdentity)hom_mat2d_scale_local (HomMat2DIdentity, 1 / ScaleFactor, 1 / ScaleFactor, HomMat2DScale)affine_trans_contour_xld (Lines, Defects, HomMat2DScale)* dev_display (Image)dev_display (Defects)if (f < 3)disp_continue_message (WindowHandle, 'black', 'true')stop ()endif
endfor
主要算子:
lines_gauss(Image : Lines : Sigma, Low, High, LightDark, ExtractWidth, LineModel, CompleteJunctions :
功能:检测线条及其宽度
Image:输入图像
Lines:提取出的亚像素精度线条
Sigma:应用的高斯平滑的系数
Low:后滞阈值分割的低值
High:后滞阈值分割的高值
LightDark:提取图像中的亮色或者暗色线条
ExtractWidth:是否提取线条的宽度
LineModel:用于校正线条位置和宽度的线条模型
CompleteJunctions:是否添加能够提取的接合点
基于Halcon学习的缺陷检测【一】detect_mura_blur.hdev相关推荐
- 基于Halcon学习的缺陷检测【四】光伏电池片的指纹以及划痕检测【第一种方法】
此例子主要是为了把光伏电池片的指纹以及划痕标注出来. 总代码: *读取图片 read_image (Image, 'E:/研究生学习/电池片练习/手指印/截图.png') *清除窗口 dev_cle ...
- 基于Halcon学习的缺陷检测【五】光伏电池片的指纹以及划痕检测【第二种方法】
此例子主要是为了把光伏电池片的指纹以及划痕标注出来. 总代码: *读取图片 read_image (Image, 'E:/研究生学习/电池片练习/手指印/截图.png')*清除窗口 dev_cle ...
- 基于halcon的木板缺陷检测算法代码-基于halcon的区域增长、大津分割算法、直方图均衡化
关键词:Halcon:图像处理:视觉检测:木板缺陷检测:特征提取 对于木条.木板等木制品表观缺陷检测,是机器视觉检测在工业中的一个主要应用,而在这其中节子的提取和检测又是一项重要的品控检测指标,本文以 ...
- 基于深度学习的表面缺陷检测方法综述-论文阅读笔记
//2022.3.2日阅读笔记 原文链接:基于深度学习的表面缺陷检测方法综述 (aas.net.cn) 个人对本篇综述内容的大致概括 论文首先介绍了表面缺陷检测中不同场景下的成像方案,主要根据表面颜色 ...
- 论文《基于深度学习的表面缺陷检测方法综述》学习笔记
<基于深度学习的表面缺陷检测方法综述>学习笔记 前段时间完成了<基于图像的零部件缺陷识别系统设计>毕业课程设计,过程中收获了很多,老师也分享了很多论文,在此记录一下学习的收获. ...
- AI-无损检测方向速读:基于深度学习的表面缺陷检测方法综述
1 表面缺陷检测的概念 表面缺陷检测是机器视觉领域中非常重要的一项研究内容, 也称为 AOI (Automated optical inspection) 或 ASI (Automated surfa ...
- 基于AI深度学习的缺陷检测系统
1. 基于AI深度学习的工业缺陷检测现状 在工业生产中,由于生产和运输环境中的不可控因素,很容易产生划痕.压伤.擦挂等缺陷.而其中的缺陷大部分都极其微小,甚至是肉眼难以识别,这些缺陷所造成的坏品率极大 ...
- 基于机器视觉的图像处理缺陷检测方法论文学习
基于机器视觉的图像处理缺陷检测方法论文学习 Machine Vision based Defect Detection Approach using Image Processing Abstract ...
- 使用深度学习 进行缺陷检测,GAN用于表面缺陷检测
使用深度学习 进行缺陷检测 链接: 千顺智能. 数据库– GRIMA database http://dmery.ing.puc.cl/index.php/material/gdxray/ steel ...
最新文章
- Reactjs-JQuery-Omi-Extjs-Angularjs对比
- VUE 项目作为服务启动
- 毕业的那天,程序员师兄竟然让我去做这一行
- 数据包格式_RAW与JPEG格式怎么选??
- 有关正则表达式的一些用法总结
- web安全day22:linux系统最基本知识最常用操作和命令
- 计算机四级少选给分吗,计算机四级:考高分的有效途径(转载)
- hdu5294Tricks Device【最短路+网络流】
- php 批量生成一维码,thinkphp5 + barcode 生成条形码
- 常用计算机技能大全,八个超实用的电脑技能( 快收藏!)
- 移动云迁移工具:Hyper-V虚拟化迁移到移动云
- git 工作区、暂存区、版本库(本地)、远程版本库区别
- View的测量规则以及三大方法流程
- 谷歌地球out了,谷歌火星来了!
- 高德地图实现仿qq,微信发送位置功能实现逻辑
- redux与flux
- 解决报错dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
- 武汉音乐学院声乐专业考研上岸经验分享
- ASEMI代理AD8061ARTZ-REEL7原装ADI车规级AD8061ARTZ-REEL7
- 台式计算机BIOS怎么查,怎么查看bios版本|查询电脑主板bios版本的方法