halcon的灰度变换(图像增强)

参考Halcon代码:

w:=3
h:=3
gen_image_const (Image, 'byte', w, h)
get_domain (Image, Domain)
get_region_points (Domain, Rows, Columns)
*将图像的所有灰度值都设置为1
grayvals:=[1,20,3,10,1,1,1,1,1]
set_grayval (Image, Rows, Columns, grayvals)
get_grayval (Image, Rows, Columns, Grayval1)

*图像相加,(图像1灰度+图像2灰度)*比例+偏移
add_image (Image, Image, ImageResult, 4, 50)
get_grayval (ImageResult, Rows, Columns, Grayval2)

*图像取反,使用255减去当前灰度值
invert_image (ImageResult, ImageInvert)
get_grayval (ImageInvert, Rows, Columns, Grayval3)

*灰度的非线性变换,提高低灰度值像素的对比度,降低高灰度值像素的对比度
log_image (ImageInvert, LogImage, 'e')
get_grayval (LogImage, Rows, Columns, Grayval4)

*降低低灰度值像素的对比度,提高高灰度值像素的对比度
exp_image (Image, ExpImage, 'e')
get_grayval (ExpImage, Rows, Columns, Grayval5)

*直方图均衡化
equ_histo_image (Image, ImageEquHisto)
get_grayval (ImageEquHisto, Rows, Columns, Grayval6)

1、线性灰度变换
1.1 图像相加

*图像相加,(图像1灰度+图像2灰度)*比例+偏移
add_image (Image, Image, ImageResult, 4, 50)

上面函数的意思是,将(图像1灰度+图像2灰度)*4+50,等于最终的图像灰度

1.2 图像取反

*图像取反,使用255减去当前灰度值
invert_image (ImageResult, ImageInvert)

2、非线性灰度变换

exp_image (Image, ExpImage, ‘e’)
特点:降低低灰度值像素的对比度,提高高灰度值像素的对比度,因为高灰度值对应X轴正方向的值,x增加相同值,y轴的值增加的更多。

在这里插入图片描述

log_image (ImageInvert, LogImage, ‘e’)
特点:提高低灰度值像素的对比度,降低高灰度值像素的对比度,因为高灰度值对应X轴正方向的值,x增加相同值,y轴的值增加的越少。
在这里插入图片描述
3、直方图变换

*直方图均衡化
equ_histo_image (Image, ImageEquHisto)
将图像的灰度范围按照一定的关系进行扩大,从而增强图像对比度
参考代码如下:

w:=3
h:=3
gen_image_const (Image, 'byte', w, h)
get_domain (Image, Domain)
get_region_points (Domain, Rows, Columns)
*将图像的所有灰度值都设置为1
grayvals:=[1,20,3,10,1,1,1,1,1]
set_grayval (Image, Rows, Columns, grayvals)
get_grayval (Image, Rows, Columns, Grayval1)

*图像相加,(图像1灰度+图像2灰度)*比例+偏移
add_image (Image, Image, ImageResult, 4, 50)
get_grayval (ImageResult, Rows, Columns, Grayval2)

*图像取反,使用255减去当前灰度值
invert_image (ImageResult, ImageInvert)
get_grayval (ImageInvert, Rows, Columns, Grayval3)

*灰度的非线性变换,提高低灰度值像素的对比度,降低高灰度值像素的对比度
log_image (ImageInvert, LogImage, 'e')
get_grayval (LogImage, Rows, Columns, Grayval4)

*降低低灰度值像素的对比度,提高高灰度值像素的对比度
exp_image (Image, ExpImage, 'e')
get_grayval (ExpImage, Rows, Columns, Grayval5)

*直方图均衡化
equ_histo_image (Image, ImageEquHisto)
get_grayval (ImageEquHisto, Rows, Columns, Grayval6

图像Image是均衡化前的灰度范围,蓝色柱状图显示如下,横坐标为灰度值,纵坐标为该灰度值的个数,

均衡化后的图如下:
可以看出灰度范围变宽了
在这里插入图片描述

直方图工具在Halcon中是如下箭头所指的一个图标,当双击图像变量时,就能出现右上角所示的灰度直方图统计图。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c#上位机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值