Halcon中增强图像的对比度也是预处理中的一环,主要有如下方式:

1.灰度值线性变换

1)scale_image()

scale_image(Image : ImageScaled : Mult, Add : )——缩放图像的灰度值
原理:可以理解为用一个模板扫描图像中的每一个像素,模板中像素最大值和最小值的差作为模板中心像素点的值。
功能描述: g’ := g * Mult + Add 为当前的灰度值。由公式可以看出scale_image算子处理图像是个线性变化,因此会扩大图像的对比度,会让黑的地方更黑,亮的地方更亮。
Mult 为所乘的系数,Add为加的偏移值。最佳Mult和Add值的选取由下:

其中:GMin为图像的最大灰度值,GMax为图像的最小灰度值。
可配合算子min_max_gray得到。min_max_gray(Regions, Image : : Percent : Min, Max, Range)确定区域内的最小和最大灰度值

2)scale_image_max()

scale_image_max(Image:ImageScaleMax::)
作用:按最大比例增强对比度,最大化图像的灰度值。该算子计算像素的最大和最小值,按照最大值比例化各个像素。
参数列表
参数1(in):输入图像,多通道图像
参数2(out):增强后图像

2.增强图像对比度

1)emphasize()

emphasize(Image : ImageEmphasize : MaskWidth, MaskHeight, Factor : )

作用:增强图像的高频区域(边缘和拐角)的对比度,使图像看起来更清晰。

Image:输入的要增强的图像;ImageEmphasize:输出的对比度增强的图像; MaskWidth, MaskHeight:输入的掩膜宽度、高度;
示例

read_image(Image,'monkey')
dev_display (Image)
draw_region (Region, 200000)
reduce_domain(Image,Region,Mask)
emphasize(Mask,Sharp,7,7,2.0)
dev_display (Sharp)

结果显示如下,分别为原图、region、增强后的region:

2)mult_image()

mult_image(Image1, Image2 : ImageResult : Mult, Add:)
作用:将两幅图像相乘。其效果会增加图像的对比度。即白越白黑越黑,中间灰度值像素很变少。
功能描述:输入图像的灰度值按以下表达式变换:(g1, g2)分别表示输入图像的像素值,gr是输出图像

 gr := g1 * g2 * Mult + Add

参数列表:
参数1(in):输入图像1
参数2(in):输入图像2
参数3(out):输出图像
参数4(in):乘数因子,限制条件:-255.0 <= Mult <= 255.0
参数5(in):加数因子,限制条件:-512.0 <= Add <= 512.0

示例

dev_update_off ( )
dev_close_window ( )
read_image (Image, 'monkey')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (Image)
* 预处理
mult_image(Image,Image, ImageResult, 0.0067, 0)
scale_image_max(ImageResult, ImageScaleMax)
* bit_not(ImageScaleMax, ImageNot)
mult_image(ImageScaleMax, ImageScaleMax, ImageResult1, 0.005, 0)

原图与图像增强后图像如下所示:

3)illuminate()

illuminate(Image : ImageIlluminate : MaskWidth, MaskHeight, Factor : )
作用:增强图像的高频区域(边缘和拐角)的对比度,使图像看起来更清晰。

参数1(in) Image:输入的要增强的图像;
参数2(out) ImageEmphasize:输出的亮度增强的图像;
参数3、4(in) MaskWidth, MaskHeight:输入的掩膜宽度、高度。
示例

read_image(Image,'fabrik')
dev_display (Image)
illuminate(Image,Better,40,40,0.55)
dev_display (Better)

两对输入图像和输出图像分别如下所示:

3.直方图均衡化

equ_histo_image()

equ_histo_image(Image : ImageEquHisto : : )
作用: 增强图像的对比度,采用直方图的方式。

4.灰度图像形态学

1)gray_opening

gray_opening(Image, SE : ImageOpening : : )
作用:灰度值开运算。结构元素在图像中遍历,灰度值最低的值作为新值,有使图像变暗的作用。

2)gray_closing

gray_closing(Image, SE : ImageClosing : : )
作用:灰度值关运算。结构元素在图像中遍历,灰度值最高的值作为新值,有使图像变亮的作用。

3) gray_range_rect

gray_range_rect(Image : ImageResult : MaskHeight, MaskWidth : )
作用:计算灰度值范围。即,输入图像的灰度值最大值和最小值的差值(最大值-最小值),在矩形掩模内的每个图像点的大小(掩模高度,掩模宽度)。

Halcon 图像增强相关推荐

  1. Halcon图像增强方法与原理概述

    目录 简介 Halcon算子与算法原理 1.灰度线性变换 a.scale_image b.scale_image_max c.invert_image 2.灰度非线性变换 a.log_image b. ...

  2. Halcon 图像增强练习

    read_image (Image, 'C:/Users/Public/Documents/MVTec/HALCON-20.11-Progress/examples/images/claudia.pn ...

  3. halcon_halcon图像处理基本运算

    halcon图像处理基本运算 图像处理最基本的操作包括颜色空间转换,各种代数运算,放射变换等.通过熟悉这些常见的操作,可以对图像有基本的认识,尤其是对刚开始接触视觉图像处理的人而言,熟悉这些操作,可以 ...

  4. halcon学习之图像增强、平滑和去噪

    最近一直很忙没时间更博客,主要是学习三维视觉和做项目,目前三维方面有了一定的学习和理解,但是还不是很深入,后面慢慢学了,项目目前也快结尾了,同时通过项目也发现二维视觉s算法的重要性,这里也简单的学习一 ...

  5. HALCON学习笔记(四)——图像增强

    图像增强:有目的的强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同特征之间的差别,抑制不感兴趣特征,改善图像质量,丰富信息量,满足分析需要. 1.图像增强的概 ...

  6. halcon学习笔记-HSV颜色空间原理和图像增强

    1.概念 HSV 是根据颜色的直观特性由Smith在1978年创建的一种颜色空间.HSV六面椎体模型如下图所示,根据该图可知: 色调 H :表示色彩信息,用角度度量,绕V轴旋转360°构成 1个圆,红 ...

  7. Halcon 金属疤痕检测(图像增强、区域排序、灰度扩张)

    链接:https://pan.baidu.com/s/15zKJ3Ea_EZJRbYE72V5pgw 提取码:pzg0 * 1.读取并显示图片 **************************** ...

  8. Halcon图像滤波方法与原理概述

    目录 简介 Halcon算子与算法原理 基础滤波 a.均值滤波 b.中值滤波 c.高斯滤波 d.导向滤波 简介 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺 ...

  9. Opencv 图像增强算法 图像检测结果及代码

    **************************************************************************************************** ...

最新文章

  1. 2010年5月21日 下雨了
  2. templates的语法
  3. MySql-流程函数
  4. Maven工作笔记003---公司只允许代理上网_给maven配置代理下载jar包
  5. 数据操作类:增删改查
  6. 关于项目对表单校验的需求
  7. jstorm mysql_Jstorm+Spring+mybatis整合
  8. 使用SVN管理unityproject
  9. linux 换行符 字节,linux的wc打印换行符,字和字节计数
  10. vb连接mysql未发现_vb连接mysql(错误代码)
  11. 给Chrome和Firefox添加js脚本作为插件的方法
  12. 普通的Shader-序列帧相关
  13. 用c51控制电机正反转以及加减速
  14. [已解决] Could not create connection to database server.
  15. 狂奔的蜗牛小组团队介绍
  16. SQL group by和count
  17. 流媒体播放器播放h264编码视频与h265编码视频哪个更清晰?
  18. 10w 行级别数据的 Excel 导入,完整优化记录
  19. 1024分辨率《X战警:第一战》BD中英双字无水印
  20. Map集合中的entry是什么?

热门文章

  1. 二级域名分发网站源码 商业版全开源
  2. Terraform Output 变量输出
  3. 如何将做好的excel表格转换成word文档
  4. 分割字符串c语言strsep,C语言 字符串切割
  5. 时间序列-预测(Forcasting):时间序列预测算法总结
  6. microtime和time
  7. 2023比较好的几种免费SEO优化工具
  8. win10系统显示打印机未连接到服务器,win10系统无法打印提示似乎未连接打印机的解决方法...
  9. 瀑布流布局原理及详解
  10. uview 瀑布流_RecyclerView 瀑布流布局