Halcon图像增强equ_histo _image/emphasize/scale _image max/shock_filter

2024-03-23 14:40

本文主要是介绍Halcon图像增强equ_histo _image/emphasize/scale _image max/shock_filter,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Halcon图像增强

文章目录

  • Halcon图像增强
    • 1. 直方图均衡
    • 2. 增强对比度
    • 3. 处理失焦图像

图像增强主要是为了突出图像中的细节,为后续的特征识别或者检测做准备。图像增强可以有
多种方式,本节介绍直方图均衡、增强对比度、处理失焦图像这3种方式。

1. 直方图均衡

直方图均衡就是从图像的灰度图入手,建立一个0~255灰度值的直方图,统计每个灰度值在直方图中出现的次数,将灰度图中对应点的灰度值记录在直方图中。接着对该直方图进行均衡化操作,使像素的灰度值分布得更加均匀,从而增强图像的亮度。在Halcon 中可以使用equ_histo_image 算子进行直方图均衡,举例如下:

*读取图像,如果是彩色图像,需要转化为单通道黑白图像
read_image (board, 'data/boardEqu')
rgbl_to_gray (board, GrayImage)
equ_histo _image (GrayImage, ImageEquHisto)
*显示直方图
gray _histo (board, board, AbsoluteHistol, RelativeHisto1)dev_open_window (0, 0, 512, 512, 'black', WindowHandle)dev _set_color ('red')
gray_histo (ImageEquHisto, ImageEquHisto, AbsoluteHisto2, RelativeHisto2)
gen_region _histo (Histol, AbsoluteHistol, 255, 5,1)
dev_set_color ('green')
gen_region histo (Histo2, AbsoluteHisto2, 255, 450, 1)

在这个例子中,使用了cqu_histo_image 算子对图像的灰度直方图进行了均衡。图(a)为原始图像,图(b)为均衡后的图像,可见亮度有明显提升。
在这里插入图片描述

2. 增强对比度

除了可以使用均衡直方图增加亮度外,还可以增强图像的对比度,对图像的边缘和细节进行增
强,使其更加明显。在Halcon图像处理中,可以使用emphasize算子实现这一操作。代码举例如下,

read_image (text,'data/text')
emphasize (text, ImageEmphasize, 10, 10, 1.5)
dev_display(ImageEmphasize)

在这个例子中,使用了cmphasize 算子对图像的对比度进行了增强。如图所示为增强对比度
的结果。图(a)为原始图像,图(b)为增强对比度后的图像,可见对比度有明显提升。
在这里插入图片描述
除了使用emphasize 算子外,还可以使用scale image max 算子进行图像对比度增强,使其明暗变化更加明显。代码举例如下:

read image (text, 'data/text')
scale _image max (text, ImageScaleMax)
dev_display(ImageScaleMax)

在这个例子中,使用了scale_image_max对图像的对比度进行了增强。如图所示为增强对比度的结果。图(a)为原始图像,图(b)为使用scale_image max算子增强对比度后的图像,可见对比度有明显提升。
在这里插入图片描述

3. 处理失焦图像

一些对焦不准的图像可能存在模糊不清的问题,这时需要考虑锐化操作。锐化的算子有很多,常见的如Sobel算子、Canny算子、Laplace算子等。本文介绍一种常用的冲击滤波器,其也可以进行边缘的增强,原理是在图像的边缘形成一些冲击,以对边缘进行增强。Halcon 中使用shock_filter 算子实现这一功能。代码举例如下:

read image (test, 'data/defocusComponnet')
shock_filter (test, SharpenedImage, 0.5, 20, 'canny', 2.5)
dev_display(SharpenedImage)

shock_filter算子的第5个参数是canny,也可以选择laplace,分别对应两种不同的边缘检测算子。锐化效果如图所示。
在这里插入图片描述
由图可以看出,模糊的边缘变得清晰,但边缘仍有毛刺等不平滑现象,可以进一步调节锐化参数,直至得到比较理想的效果。

这篇关于Halcon图像增强equ_histo _image/emphasize/scale _image max/shock_filter的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838625

相关文章

Spring Boot拦截器Interceptor与过滤器Filter详细教程(示例详解)

《SpringBoot拦截器Interceptor与过滤器Filter详细教程(示例详解)》本文详细介绍了SpringBoot中的拦截器(Interceptor)和过滤器(Filter),包括它们的... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)详细教程1. 概述1

dubbo3 filter(过滤器)如何自定义过滤器

《dubbo3filter(过滤器)如何自定义过滤器》dubbo3filter(过滤器)类似于javaweb中的filter和springmvc中的intercaptor,用于在请求发送前或到达前进... 目录dubbo3 filter(过滤器)简介dubbo 过滤器运行时机自定义 filter第一种 @A

Java 8 Stream filter流式过滤器详解

《Java8Streamfilter流式过滤器详解》本文介绍了Java8的StreamAPI中的filter方法,展示了如何使用lambda表达式根据条件过滤流式数据,通过实际代码示例,展示了f... 目录引言 一.Java 8 Stream 的过滤器(filter)二.Java 8 的 filter、fi

基于WinForm+Halcon实现图像缩放与交互功能

《基于WinForm+Halcon实现图像缩放与交互功能》本文主要讲述在WinForm中结合Halcon实现图像缩放、平移及实时显示灰度值等交互功能,包括初始化窗口的不同方式,以及通过特定事件添加相应... 目录前言初始化窗口添加图像缩放功能添加图像平移功能添加实时显示灰度值功能示例代码总结最后前言本文将

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

file-max与ulimit的关系与差别

http://zhangxugg-163-com.iteye.com/blog/1108402 http://ilikedo.iteye.com/blog/1554822

Hbase Filter+Scan 查询效率优化

Hbase Filter+Scan 查询效率问题 众所周知,Hbase利用filter过滤器查询时候会进行全表扫描,查询效率低下,如果没有二级索引,在项目中很多情况需要利用filter,下面针对这种情况尝试了几种优化的方案,仅供参考,欢迎交流。 根据业务要求,作者需要根据时间范围搜索所需要的数据,所以作者设计的rowKey是以时间戳为起始字符串的。 正确尝试: 1.scan 设置 开始行和结

Filter基本原理和使用

https://www.cnblogs.com/xdp-gacl/p/3948353.html 一、Filter简介   Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控

POJ 1050 To the Max(枚举+动规)

题目: http://poj.org/problem?id=1050 题解: 此题转化成一维后就相当于求最大连续子序列了,可以枚举所有的行组合,把枚举到的起始行到终止行的值按列相加存入一个一维数组。 代码: #include<cstdio>#include<cstring>int a[101][101];int value[101];int dp[101];int max(