16-Halcon机器视觉实例入门:图像类型转换及图像灰度值缩放

图像类型转换及图像灰度值缩放

1 图像类型转换

在Halcon中,通过convert_image_type算子来转换图像类型。算子原型如下:

convert_image_type(Image : ImageConverted : NewType : )
其中,参数Image为输入图像,ImageConverted为输出图像,NewType为转换的类型。参数支持的类型有(‘byte’, ‘complex’, ‘cyclic’, ‘direction’, ‘int1’, ‘int2’, ‘int4’, ‘int8’, ‘real’, ‘uint2’)。如果将大范围灰度值转换为小范围的灰度值,比如int4转换为byte,将出现截断的情况;如果将图像转换成direction类型,灰度值不在有效范围内,direction类型图像将灰度值设置为255,标记为无效值。为了适应direction类型,一般情况下先调用scale_image算子对灰度值进行转换。

Halcon支持的图像像素类型如下:

  • byte:8位无符号
  • uint2:16位无符号
  • int1:8位无符号
  • int2:16位无符号
  • int4:32位无符号
  • direction:8位无符号,值[0,179]
  • real:32位浮点类型
  • complex:每像素的real值
  • cylic:8位无符号,255+1=0
  • vector_field:两帧real类型图像描述x或y的运动方向

2 图像灰度值缩放

通过使用scale_image算子对图像灰度值进行缩放。scale_image使用以下公式计算:
g ′ = g ∗ M u l t + A d d g' = g * Mult + Add g=gMult+Add
其中, M u l t = 255 G M a x − G M i n Mult = \frac{255}{GMax - GMin} Mult=GMaxGMin255 A d d = − M u l t ∗ G M i n Add = -Mult * GMin Add=MultGMin G M a x GMax GMax G M i n GMin GMin可以通过min_max_gray算子计算。

例如,将灰度图像(byte)类型转换direction类型,然后对图像进行正弦三角函数计算


* 读取图像
read_image(src,'fabrik')


* 缩放图像像素灰度值
get_image_size(src,width,height)
* 生成图像大小的矩形
gen_rectangle1(rectangle,0,0,width,height)
* 获取图像像素灰度值的最大和最小值
min_max_gray(rectangle,src,0,gmin,gmax,range)
mult := 255 / (gmax - gmin)
add := -mult * gmin
* 图像像素灰度值缩放
scale_image(src,src_scaled,mult,add)
* 转换direction类型
convert_image_type(src_scaled,src_direction,'direction')

sin_image(src_direction,result_direction)

* 使用cyclic类型计算
convert_image_type(src_scaled,src_cyclic,'cyclic')
* 对图像进行正弦计算
sin_image(src_cyclic,result_cyclic)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

视觉与物联智能

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

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

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

打赏作者

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

抵扣说明:

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

余额充值