Halcon学习笔记:划痕、油污、瑕疵
Halcon学习笔记:划痕、油污、瑕疵
划痕、油污、瑕疵,常用的方法有傅里叶变换和Blob分析。
1.表面划痕
invert_image(Image,ImageInvert1)
mult_image(ImageInvert1, ImageInvert1, ImageResult,0.01, 0)
gen_sin_bandpass (ImageBandpass, 0.6, 'none', 'rft', Width, Height)
rft_generic (ImageResult, ImageFFT, 'to_freq', 'none', 'complex', Width)
convol_fft (ImageFFT, ImageBandpass, ImageConvol)
rft_generic (ImageConvol, Lines, 'from_freq', 'n', 'byte', Width)
texture_laws (Lines, ImageTexture, 'el',3, 5)
为更好的突出前景,一般情况下要求背景颜色较深,可以先用invert_image算子进行灰度值转换。之后的图像相乘,是将对比度进一步扩大。
生成一个正弦形状的带通滤波器,可以去除图像中的噪声。然后傅里叶变换凸显出要检测的划痕。
texture_laws是纹理滤波,适用于布匹表面的划痕,是整个算法的关键所在。
2.亮点、暗点
*找到亮点
mean_image (ImageScaleMax, ImageMean, 9, 9)
dyn_threshold(ImageScaleMax,ImageMean,RegionDynThresh,5,'light' )
connection(RegionDynThresh,ConnectedRegions)
*找到暗点
mean_image(ImageScaleMax,ImageMean,7,7)
dyn_threshold(ImageScaleMax,ImageMean,RegionDynThresh1,5,'dark' )
connection(RegionDynThresh1,ConnectedRegions1)
平滑,动态阈值分割。
3.金属表面疤痕
* 加强图像的对比度
emphasize(Image,ImageEmphasize,Width, Height, 5)
threshold(ImageEmphasize, Region, 0, 5)
fill_up(Region, RegionFillUp2)
connection(RegionFillUp2, ConnectedRegions1)
select_shape(ConnectedRegions1, SelectedRegions2, 'area', 'and', 55000, 60000)
closing_circle(SelectedRegions2, RegionClosing, 13.5)
通过emphasize算子,增强图像对比度,当然前景的突出不仅仅只用这种方法。
4.油污
Sigma1 := 30.0
Sigma2 := 5.0
gen_gauss_filter (GaussFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft', Width, Height)
gen_gauss_filter (GaussFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft', Width, Height)
sub_image (GaussFilter1, GaussFilter2, Filter, 1, 0)
rgb1_to_gray (Image, GrayImage)
rft_generic (Image, ImageFFT, 'to_freq', 'none', 'complex', Width)
convol_fft (ImageFFT, Filter, ImageConvol)
rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)
scale_image_range (ImageFiltered, ImageScaled, 0, 255)
与表面划痕相似,通过两次高斯滤波,结合傅里叶变换。scale_iamge_range算子的作用:Scale the gray values of an image from the interval [Min,Max] to [0,255]。可以将油污的灰度值凸显出来。
Halcon学习笔记:划痕、油污、瑕疵相关推荐
- Halcon学习笔记(三)---数据类型
Halcon学习笔记(三)---数据类型 halcon只能在单独行进行注释,不能在语句后面进行注释. 1.tuple(元组,重数) 赋值符号":=" tuple算子: (1)变量定 ...
- Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)
Halcon学习笔记:select_points_object_model_3d 3D对象模型阀值分割 This example program shows how to use the operat ...
- Halcon学习笔记:xyz_attrib_to_object_model_3d示例
Halcon学习笔记:xyz_attrib_to_object_model_3d--从X.Y和Z图像中创建3D对象模型同时附加属性 xyz_attrib_to_object_model_3d.hdev ...
- Halcon学习笔记:1D Measuring一维测量_fuse.hdev灯丝测量示例
Halcon学习笔记:1D Measuring一维测量_fuse.hdev灯丝测量示例 一.基本概念 基本流程为: 获取图像 对图像进行灰度值标定 (针对相机获取的图像灰度和输入能量之间的非线性关系, ...
- Halcon学习笔记(一):Qt+Halcon联合开发配置
Halcon学习笔记(1):Qt+Halcon联合开发配置 首先是新建一个QT项目qtest_hc 方法一: 1)QT项目文件 qtest_hc 添加库: #1.包含目录添加 INCLUDEPATH ...
- Halcon学习笔记:3D_coordinates(3D标定)
Halcon学习笔记:3D_coordinates(3D标定) 欢迎有兴趣的朋友一起学习,代码理解注释有问题的可以告诉我,一起讨论,共同进步. *初始化程序,dev_close_window() *关 ...
- Halcon 学习笔记八:颜色识别
Halcon 学习笔记八:颜色识别 一.图像处理需要的知识 二.图像处理的预处理和分割过程 二.颜色识别的方法 三.例子一 四.例子二 五.例子三 一.图像处理需要的知识 1.图像处理基础(rgb(h ...
- 一、HALCON学习笔记(容器液位缺陷检测)
一.HALCON学习笔记(容器液位缺陷检测) * In this example a fill level check for the * pharmaceutical industry is dem ...
- Halcon 学习笔记五:几何定位+仿射变换+测量
Halcon 学习笔记五:几何定位+仿射变换+测量 定位流程 例子一 例子二(药片的定位) 例子三(充电宝定位) 例子四(车牌定位) 其他 定位流程 blob分析 模板匹配 (仿射变换成标准的形状) ...
最新文章
- 「云毕业照」刷爆朋友圈!AI人脸融合技术谁家强?
- 查看终端进程是否死掉技巧
- (三) Angular2项目框架搭建心得
- Spark集群基于Zookeeper的HA搭建部署笔记(转)
- java双机调度_Haproxy+keepalive-群集架构实验
- Linux shell脚本编程(二)
- vue+axios方法封装(restful,ajax)
- eclipse报错找不到tools.jar
- arcpy 实现新增字段合并字段
- web 打印时 表格多页 导致缺少线段 看上去页面不完整的处理方案
- java三国鼎立,网页游戏三国鼎立(武三国)一键服务端带教程及修改说明
- 关于无线网络的静态ip与动态ip设置
- 基于ttcrpy的跨孔CT高斯牛顿算法及python代码分享(2)
- 优秀程序员的博客有哪些?(2021 年 3 月版)
- 【论文解读】MacBERT: 中文自然语言预训练模型
- cv/dl/cl领域的实验室官网/牛人主页/技术论坛/比赛数据库/好玩的东西
- centos6 centos7 刷新清除dns缓存
- Gif动图制作神器(GifCam)
- 批量打印之smsx.cab打印
- Java虚拟机是如何识别目标方法的?
热门文章
- Buffalo WCR-GN路由器诊断功能命令注入漏洞
- 软件测试电池满但是不耐用,手机电池越来越不耐用?这一功能才是罪魁祸首!赶紧关掉!...
- 400多行Python代码实现了一个FTP服务器
- [HIMCM暑期班]第2课:建模
- 算法与程序设计(一):主定理
- android UI模板自定义设计
- MFC之RTTI分析(基于侯俊杰的《深入浅出MFC》)
- 我没捏出来的脸,淘宝帮我做到了
- ig9icd64.dll引起的奔溃问题的解决
- 完成AK4191+AK4499EX的DSD1024音乐硬解