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学习笔记:划痕、油污、瑕疵相关推荐

  1. Halcon学习笔记(三)---数据类型

    Halcon学习笔记(三)---数据类型 halcon只能在单独行进行注释,不能在语句后面进行注释. 1.tuple(元组,重数) 赋值符号":=" tuple算子: (1)变量定 ...

  2. Halcon学习笔记:select_points_object_model_3d(3D对象模型阀值分割)

    Halcon学习笔记:select_points_object_model_3d 3D对象模型阀值分割 This example program shows how to use the operat ...

  3. 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 ...

  4. Halcon学习笔记:1D Measuring一维测量_fuse.hdev灯丝测量示例

    Halcon学习笔记:1D Measuring一维测量_fuse.hdev灯丝测量示例 一.基本概念 基本流程为: 获取图像 对图像进行灰度值标定 (针对相机获取的图像灰度和输入能量之间的非线性关系, ...

  5. Halcon学习笔记(一):Qt+Halcon联合开发配置

    Halcon学习笔记(1):Qt+Halcon联合开发配置 首先是新建一个QT项目qtest_hc 方法一: 1)QT项目文件 qtest_hc 添加库: #1.包含目录添加 INCLUDEPATH ...

  6. Halcon学习笔记:3D_coordinates(3D标定)

    Halcon学习笔记:3D_coordinates(3D标定) 欢迎有兴趣的朋友一起学习,代码理解注释有问题的可以告诉我,一起讨论,共同进步. *初始化程序,dev_close_window() *关 ...

  7. Halcon 学习笔记八:颜色识别

    Halcon 学习笔记八:颜色识别 一.图像处理需要的知识 二.图像处理的预处理和分割过程 二.颜色识别的方法 三.例子一 四.例子二 五.例子三 一.图像处理需要的知识 1.图像处理基础(rgb(h ...

  8. 一、HALCON学习笔记(容器液位缺陷检测)

    一.HALCON学习笔记(容器液位缺陷检测) * In this example a fill level check for the * pharmaceutical industry is dem ...

  9. Halcon 学习笔记五:几何定位+仿射变换+测量

    Halcon 学习笔记五:几何定位+仿射变换+测量 定位流程 例子一 例子二(药片的定位) 例子三(充电宝定位) 例子四(车牌定位) 其他 定位流程 blob分析 模板匹配 (仿射变换成标准的形状) ...

最新文章

  1. 「云毕业照」刷爆朋友圈!AI人脸融合技术谁家强?
  2. 查看终端进程是否死掉技巧
  3. (三) Angular2项目框架搭建心得
  4. Spark集群基于Zookeeper的HA搭建部署笔记(转)
  5. java双机调度_Haproxy+keepalive-群集架构实验
  6. Linux shell脚本编程(二)
  7. vue+axios方法封装(restful,ajax)
  8. eclipse报错找不到tools.jar
  9. arcpy 实现新增字段合并字段
  10. web 打印时 表格多页 导致缺少线段 看上去页面不完整的处理方案
  11. java三国鼎立,网页游戏三国鼎立(武三国)一键服务端带教程及修改说明
  12. 关于无线网络的静态ip与动态ip设置
  13. 基于ttcrpy的跨孔CT高斯牛顿算法及python代码分享(2)
  14. 优秀程序员的博客有哪些?(2021 年 3 月版)
  15. 【论文解读】MacBERT: 中文自然语言预训练模型
  16. cv/dl/cl领域的实验室官网/牛人主页/技术论坛/比赛数据库/好玩的东西
  17. centos6 centos7 刷新清除dns缓存
  18. Gif动图制作神器(GifCam)
  19. 批量打印之smsx.cab打印
  20. Java虚拟机是如何识别目标方法的?

热门文章

  1. Buffalo WCR-GN路由器诊断功能命令注入漏洞
  2. 软件测试电池满但是不耐用,手机电池越来越不耐用?这一功能才是罪魁祸首!赶紧关掉!...
  3. 400多行Python代码实现了一个FTP服务器
  4. [HIMCM暑期班]第2课:建模
  5. 算法与程序设计(一):主定理
  6. android UI模板自定义设计
  7. MFC之RTTI分析(基于侯俊杰的《深入浅出MFC》)
  8. 我没捏出来的脸,淘宝帮我做到了
  9. ig9icd64.dll引起的奔溃问题的解决
  10. 完成AK4191+AK4499EX的DSD1024音乐硬解