• 这个例子展示了如何检测高纹理图像中的色差不均匀缺陷
  • 实现高纹理图像中缺陷的检测(黑色)。
  • 缺陷的特征是暗斑。因此,通过从原始图像中减去估计的背景光照,缺陷变得更加明显
    dev_close_window ()
  • 初始化
    dev_update_off ()

Path := ‘lcd/mura_defects_texture_’
*图片文件路径
read_image (Image, Path + ‘01’)
get_image_size (Image, Width, Height)
dev_open_window (0, 0, 640, 480, ‘black’, WindowHandle)
*图形窗口左上角的位置(0, 0)限制窗口宽度与高度(640, 480)新窗口的背景颜色(‘black’)新图形窗口句柄(WindowHandle)
set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)
*设置字体。窗口句柄(WindowHandle)字体大小(14)字体类型(’mono’)是否黑体(’ture’)是否倾斜(’false’)
dev_set_draw (‘margin’)
*定义区域填充模式为(’边缘’或者’Fill’)
dev_set_line_width (3)
*设置输出区域轮廓线的线宽
dev_set_color (‘red’)
*设置轮廓线颜色红色
for f := 1 to 2 by 1
*共两个图像
read_image (Image, Path + f$’.2i’)
decompose3 (Image, R, G, B)
*对彩色图像进行R G B分解,选取B作为后续图像。decompose3(MultiChannelImage : Image1, Image2, Image3 : : )

*1 缺陷的特征是暗斑。因此,通过从原始图像中减去估计的背景光照,缺陷变得更加明显
estimate_background_illumination (B, ImageFFT1)
*生成背景模板(输入图片,背景模板)
sub_image (B, ImageFFT1, ImageSub, 2, 100)
*图像差分,增强两幅图像的差异。ImageFFT1-B=ImageSub。g':= (g1 - g2) * 倍数(2)+ 增加差值(100)*2 中值滤波平滑了纹理,简化了接下来的分割和最终的缺陷检测
*中值滤波来抑制小斑点或细线
median_image (ImageSub, ImageMedian, 'circle', 9, 'mirrored')
*带有遮罩的中值滤波器。输入图片(ImageSub)中值图像(ImageMedian)筛选遮罩类型(包围)
*遮罩的半径(9)建议值:1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 15, 19, 25, 31, 39, 47, 59
*边界处理(镜像)建议值:“镜像”、“循环”、“继续”,0、30、60、90、120、150、180、210、240、255
watersheds_threshold (ImageMedian, Basins, 20)
*3使用阈值从图像中分割并提取多个分水岭盆地轮廓。待分割图像(ImageMedian)暗色盆地(Basins)分水岭阈值(20): 0, 5, 10, 20, 30, 50* 4根据能量提取缺陷。暗斑对应的区域能量非常低
cooc_feature_image (Basins, ImageMedian, 6, 0, Energy, Correlation, Homogeneity, Contrast)
*灰度共生矩阵推导各区域其灰度值特征。待检查区域(Basins)对应的灰度值(ImageMedian)待区分灰度值个数(6)矩阵计算的方向(0)
*灰度值的能量 灰度值的相关性 灰度值的局部同质性 灰度值的对比度
tuple_find (sgn(Energy - 0.05), -1, Indices)* 判断能量是否大于0.05,通过sgn函数将大于0.05的置1,小于的置-1
*返回一个元组在另一个元组中所有出现的元组的索引。要检查的输入元组 检测值为-1的元素 符合的位置的索引号(从0开始)
select_obj (Basins, Defects, Indices + 1)
*将带有索引(从1开始)的图标对象从图标输入对象元组对象复制到输出对象。
*输入的元组(Basins)选定的对象(Defects)要选择的对象的索引(Indices + 1)dev_display (Image)*在当前图形窗口中显示图像对象(Image)。
dev_display (Defects)
*在当前图形窗口中显示缺陷(Defects)。
count_obj (Defects, NDefects)
*元组中的对象数目。要检查对象(Defects)对象数目(NDefects)
disp_message (WindowHandle, NDefects + '  \'mura\'  defects detected', 'window', -1, -1, 'red', 'true')
*设置文本框。句柄 显示内容(\'代表') 参考坐标 左上角坐标(-1, -1)如果设置为-1,则使用默认值12 红色字体白色对话框if (f < 2)disp_continue_message (WindowHandle, 'black', 'true')*没有检测完所有图像,在当前窗口显示黑色字体白色对话框(默认第二个对话框为右下角)stop ()
endif

endfor

halcon缺陷检测学习3暗斑检测detect_mura_defects_texture相关推荐

  1. 《南溪的目标检测学习笔记》——目标检测模型的设计笔记

    1 南溪学习的目标检测模型--DETR 南溪最赞赏的目标检测模型是DETR, 论文名称:End-to-End Object Detection with Transformers 1.2 decode ...

  2. 《南溪的目标检测学习笔记》——目标检测的评价指标(mAP)

    1 介绍 在本文中我们将介绍目标检测任务中的mAP~ 2 COCO-mAP 在介绍mAP时,我们选择的是COCO-mAP,这是现在最为流行的指标: 关于COCO-mAP的形象解释,请参考视频<霹 ...

  3. 《南溪的目标检测学习笔记》——COCO数据集的学习笔记

    1 COCO数据集 COCO数据集下载链接:COCO_download 1.1 数据概览 数据集大小 train: 118287张 train+val: 123287张 val: 5000张 目标数量 ...

  4. 《南溪的目标检测学习笔记》的笔记目录

    1 前言 这是<南溪的目标检测学习笔记>的目录~ 2 学习目标检测的思路--"总纲" <南溪的目标检测学习笔记>--目标检测的学习笔记 我在这篇文章中介绍了 ...

  5. 深度学习之小目标检测

    深度学习之小目标检测深度学习之小目标检测深度学习之小目标检测 百度网盘 提取码:1234 1.<小目标检测技术研究综述_梁鸿> 小目标检测是针对图像中像素占比少的目标,借助计算机视觉在图像 ...

  6. HALCON示例程序fin.hdev通过形态学检测缺陷

    HALCON示例程序fin.hdev通过形态学检测缺陷 示例程序源码(加注释) 关于显示类函数解释 dev_update_window ('off') read_image (Fins, 'fin' ...

  7. HALCON示例程序distance_transform.hdev通过distance_transform检测线的缺陷

    HALCON示例程序distance_transform.hdev通过distance_transform检测线的缺陷 示例程序源码(加注释) 关于显示类函数解释 dev_close_window ( ...

  8. 利用手机相机实现表面缺陷检测学习【缺陷检测_01】

    缺陷检测软件:halcon 相机:iPhone7自带相机 我们在进行表面缺陷检测时,往往需要购置工业相机,但我们往往并不需要用到工业级的处理,学习这些处理方法.算子才是我们的重点.因此我们为了简化学习 ...

  9. 使用深度学习 进行缺陷检测,GAN用于表面缺陷检测

    使用深度学习 进行缺陷检测 链接: 千顺智能. 数据库– GRIMA database http://dmery.ing.puc.cl/index.php/material/gdxray/ steel ...

最新文章

  1. [Python]小甲鱼Python视频第32课(except)课后题及参考解答
  2. Day1-python基础
  3. Bootstrap模态框报错
  4. 常量元素记忆口诀_人体中的常量元素与微量元素
  5. 【Flask】Jinja2之模板中使用url_for
  6. Docker将在存储上崭露头角?
  7. 2020 操作系统第五天复习(知识点总结)
  8. HBuilder 模拟器连接默认端口
  9. Rancher 2.0正式发布:简化、加速企业Kubernetes落地
  10. 使用IntelliJ ..达2周,到目前为止一切正常
  11. MFC关键技术-动态创建
  12. vim安装时报错:Depends:vim-common (=2:7.4.1689-3ubuntu1.4) but 2:8.0.1453-1ubuntu1.1 is to be installed
  13. win10家庭版与专业版有什么区别?
  14. Go语言 channel 管道 阻塞 死锁 经典问题
  15. 一半是火焰 一半是海水:硅谷面临“出逃危机”
  16. 中级软件测试笔试题100精讲_软件测试工程师笔试题目(含答案)
  17. arduino 智能车组装步骤_Arduino智能小车硬件安装说明
  18. 五款优秀免费的在线抠图工具
  19. 个人作业--数组之首尾相连
  20. office2016激活后仍然出现输入激活码

热门文章

  1. 计算机毕业设计Java高校共享单车管理系统(源码+系统+mysql数据库+lw文档)
  2. 最浅显易懂的Django系列教程(20)-查询操作
  3. sqlsever 执行存储过程
  4. java实现这个无表头空表格,《java程序导出excel表格是空白的没有数据?》 java怎么导入数据库...
  5. Nature子刊:对EcoG脑机接口进行无监督适应
  6. 硅钢铁损测量 | 铁损仪用户样片及相关问题的答
  7. WIN10无法创建或加入家庭组的解决办法
  8. 某大型零售企业EAM 资产管理系统困局与挑战
  9. webstorm TFS 插件的安装与使用
  10. 关于5G与4G的对比以及未来前瞻的个人见解