实例详解如何选择滤波算法

机器视觉课堂

OpenCV、Halcon等机器视觉专业学习交流平台,服务于工业自动化、先进机器人技术、人工智能等相关专业技术人才。定期发布最新机器视觉相关新闻、应用案例、技术资料、展会信息等信息。
55篇原创内容
公众号

源:机器视觉算法与应用

在机器视觉中,图像滤波器无处不在。例如,它们用于减少图像噪声,改善对比度或检测边缘。本文将向您介绍MVTec HALCON中一些最常用的滤波器,它们是如何工作的以及可以用于什么。

mean_image:均值滤波器

首先,我们读取具有背景纹理的示例图像。我们的目标是在不改变实际信息的情况下删除背景纹理。让我们从一个易于理解的通用运算符开始:mean_image。

在生成的图像中,背景纹理已被很好地去除,但是很多相关信息已经丢失。那么,此滤波器如何工作?

为了调用mean_image, 我们指定了掩码大小。

*Halcon mean_image 函数原型
mean_image(Image : ImageMean : MaskWidth, MaskHeight : )
read_image(Image,'plan_01')mean_image(Image,Mean,3,3)

对于每个像素,将创建具有指定宽度和高度的蒙版。然后,我们在此蒙版中获取灰度值并计算平均值。将该平均值分配给中心像素。因此,图像滤波后非常均匀平滑。

另一个类似的运算符是median_image。

median_image:中值滤波器

默认情况下,使用圆形蒙版。对灰度值进行排序,并将“中间”值设置为新的灰度值。因此,中位数是更可靠的平均值,离群值对其影响不大。此外,在保留锐利边缘方面要好得多。

但是,更详细的信息,例如此处显示的数字,应用滤波器后仍然很模糊。为了进行比较,这是均值滤波器的结果。

还有更多运算符可用于平滑图像。请参阅“滤波器/平滑处理”一章参考,以获取全面概述。

为了消除此图像中的背景噪音,使用滚动导向滤波器(Rolling Guidance Filter)是一种高级选择。您可以在文档中看到令人印象深刻的结果。

第(3)张图片显示了提取的纹理。要获得此图像,我们使用算术滤波器sub_image。在这里,我们将原始图像减去被滤波器过滤的图像。生成的图像显示了提取的纹理。

滤波器的常见用例

让我们看一下基本过滤器的一些常见用例。

去除噪声

在这里,我们读取了植物的图像,并添加了一些椒盐噪声。使用median_image,我们可以非常有效地消除这种噪声。另外,白噪声是硬件引入的常见问题。在这里,均值滤波器和中值滤波器都可以产生好的结果。

使用滚动式导向滤波器,结果看起来非常不错。但是总运行时间会大大增加。在此太阳能电池图像中,我们希望摆脱水平线。在此,中值滤波器产生视觉上令人满意的结果。

图像分割

在下一张图片中,我们的目标是使用阈值来检测缺陷。但是,在灰色直方图中,我们不容易看到缺陷。因此,我们应用中值滤波器,现在,直方图中这个小的“丘陵”变得可区分并且可以轻松地进行分段,如下图所示,medain_filter前后。类似地,可以在分割图像以创建感兴趣区域之前应用滤波器。

另一个很好的例子是您要识别图像中的文本。通过滤波器预处理改善运行时间或提高鲁棒性。

一个常见的分割运算符是dyn_threshold,它使用局部阈值。通常,ThresholdImage是原始图像的平滑版本。在此示例中,我们使用它粗略地划分了盲文。

*Segment braille with dyn_threshold.
read_image (Image,'photometric_stereo/embossed_01')
mean_image (Image,ImageMean,60,60)
dyn_threshold (Image, ImageMean, RegionDynThresh, 15, 'not_equal')

segment-braille-with-dyn_threshold

校正不均匀照明

滤波器的另一个常见用例是照明的校正(算术滤波器的使用)。在这里,我们使用背光设置获取图像。注意照明不是完全均匀的。为了解决这个问题,我们获取背景图像,然后从原始图像中减去该背景图像。结果是更好的照明图像。

*correct illumination.read_image (Image,'images/correct_shading_02.png')read_image (Background, 'images/correct_shading_01.png')sub_image (image,Background,ImageSub, 1,255)

增强局部细节

在此图像中,我们要增强细节。为此,我们首先对图像进行平滑处理。然后,我们从原始图像中减去平滑图像,从而为我们提供了细节。然后,我们将这些详细信息添加到原始文件中。如下图所示增强局部细节前后。

*Enhance details.
read_image (Image,'angio-part')
guided_filter(Image,image,ImageSmooth,5,10)
sub_image (Image,ImageSmooth,ImageDetail,5,0)
add_image(ImageDetail,Image,ImageDetailEnhanced,1,0)

最后,需要说明滤波器时必须注意的一个效果:

在reduce_domain时使用的是缩小区域,大多数过滤器仅返回输入域中包含的像素的结果,区域外的像素变为“未定义”。当应用两个或多个滤波器时,这可能会导致图像边界出现伪影。

机器视觉课堂

OpenCV、Halcon等机器视觉专业学习交流平台,服务于工业自动化、先进机器人技术、人工智能等相关专业技术人才。定期发布最新机器视觉相关新闻、应用案例、技术资料、展会信息等信息。
55篇原创内容
公众号
(0)

相关推荐

  • Halcon 图像截取

    在Halcon中进行截图有很多坑,比如reduce_domain.get_domain.crop_part等等,每个算子都有不同的功能,经过多次试验验证,crop_part才是名副其实用来截取感兴趣区 ...

  • Interview:算法岗位面试—11.15下午上海某航天***公司(国企)技术面之工业机器视觉认知、计算机视觉算法的理解、目标检测相关项目案例

    ML岗位面试:11.15下午上海某航天***公司(国企)技术面之工业机器视觉认知.计算机视觉算法的理解.目标检测相关项目案例 Interview:算法岗位面试-11.15下午上海某航天***公司(国企 ...

  • HALCON 20.11:深度学习笔记(4)

    HALCON 20.11.0.0中,实现了深度学习方法.关于网络和训练过程如下: 在深度学习中,任务是通过网络发送输入图像来执行的.整个网络的输出由许多预测组成.例如,对于一个分类任务,预测得到的每个 ...

  • 常用的机器视觉软件总结

    机器视觉处理软件:用来完成输入图像数据的处理,通过一定的运算得出结果,这个输出的结果可能是PASS/FAIL信号.坐标位置.字符串等. 常见的机器视觉软件以C/C++图像库,ActiveX控件,图形式 ...

  • [Halcon] 图像增强相关算子及其分类

    图像增强就是指通过某种图像处理方法对退化的某些图像特征,如边缘.轮廓.对比度等进行处理,以改善图像的视觉效果,提高图像的清晰度,或是突出图像中的某些"有用",压缩其他"无 ...

  • halcon图像灰度操作

    *生成灰度为0的图像 gen_image_const (Image, 'byte', 512, 512) *计算尺寸 get_image_size (Image, Width, Height) *设置 ...

  • 《HALCON机器视觉与算法原理编程实践》第2章 如何做机器视觉项目

    文章目录 2.1 项目的前期准备 2.1.1 从5个方面初步分析客户需求 2.1.2 方案评估与验证 2.1.3 签订合同 2.2 项目规划 2.2.1 定义客户的详细需求 2.2.2 指定项目管理计 ...

  • Halcon算子gray_range_rect

    函数原型: gray_range_rect( Image : ImageResult : MaskHeight, MaskWidth:) 函数作用: 决定某个方形区域内的灰度值,计算方形区域内的最大最 ...

  • 11、halcon助手使用说明

    使用halcon助手,可以提高开发速度.减轻程序编写工作量.不过,在没有很熟悉算子的情况下,不建议使用halcon助手.只有在代码编写能力熟练的情况下使用,方可事半功倍,否则会适得其反. 1.模板匹配 ...

  • 六爻占卜测四肢疾病断卦详解,六爻测身体四肢健康断卦实例详解

    ​在六爻预测中常常会碰到求测者的四肢受过伤,残疾或有病.而预测师有时却无法准确的判断出是哪里受过伤,残疾或有病. 刚开始时我在给别人预测时也不好理解四肢的判断方法.偶然的一次,有人说了一句" ...

  • 7实例详解盲派天干生与合做功对命局的影响

    天干的生与合即天干的合财与合官:合官的时候要注 意官能不能独立存在,官有无生印,印有无生比劫:合财的时候一定要看财的 出处. 合官与合财都要看出处,天干五合代表日主在社会上想干的事.合官与合财是 不同 ...

  • 织梦CMS常用的几种字段判断输出实例详解

    我们在使用织梦CMS制作网站时,对于某个字段,无论是默认字段还是自定义字段,偶尔会使用一些判断语句来实现我们的需求.下边列出了几种常见的需求.以及字段的判断输出实例. 第一种:织梦自定义字段,如果没有 ...

  • 阴宅篇—实例详解阴阳宅的位置与人生

    运动,将时方象数带给人们理据理术.而一切数术理据·往往是一切象数的基因能量在应时消长转化中所产生运动的规律与周期.天时地方如此,人生人体与人性人为和万事万物如此.天地人合. 时间,是珍贵的.甚至要超出 ...

  • PLC编程:从原理图到程序的4个经典实例详解

    本文中将以分析几个案例的方式拆解程序编程的过程,从控制过程到原理及梯形图.如果采用其它系列或品牌的PLC,其逻辑结构大同小异. 这次我们将拆解的案例 1.喷泉控制 2.交通信号灯控制 3.多级传送带控 ...

  • 手把手教你入门 Git 教程,图文实例详解

    Git简介 Git 是一种分布式版本控制系统,它可以不受网络连接的限制,加上其它众多优点,目前已经成为程序开发人员做项目版本管理时的首选,非开发人员也可以用 Git 来做自己的文档版本管理工具. 实用 ...

  • 如何透彻理解摄影后期调色?从基本原理到操作实例详解

    如何透彻理解摄影后期调色,什么是真正的摄影后期照片调色? 紫枫本节课试着用最通俗易懂的语言透彻讲解摄影后期调色,从基本调色的原理到调色的操作实例,一文让你弄懂摄影后期调色的方方面面,前世今生. 文章很 ...

  • 实例详解PhotoShop中的计算命令的原理

    作者来源:腾龙视觉 很多初学Photoshop的朋友,都使用过"计算"命令,但对这个命令的工作原理却大多不太了解,甚至有些PS高手也不一定能够说的清楚. 利用"计算&qu ...

  • 三菱PLC实例详解,看了就能学会的好文!

    三菱PLC实例详解,看了就能学会的好文!