halcon灰度图转热力图 / 真彩色——绘制彩虹

halcon的灰度图转热力图

主要是根据灰色图像的灰度值来生成彩色图像

下图为原始图

步骤:
1.首先读取视差图像,这里的图像是单通道的,Byte类型。
2.将灰度范围扩展到0~255以内。
3.创建一张空图像,这个用于合成一张新图的时候填补通道用。
4.颜色空间转换,创建一张HSV空间的图,灰度图放在H通道中,用于显示各种何样的色调。同时生成R\G\B通道图像。
5.在将RGB通道合并,即可得到彩色深度图。

read_image (Image, '截图1.png')
min_max_gray (Image, Image, 0, Min, Max, Range)
scale_image (Image, scaledImage, 255/(Max - Min), (-Min)* 255/(Max - Min))
gen_image_proto (Image, ImageClear, 255)
*把RGB转换到HSV通道
*trans_from_rgb(Red, Green,Blue, H, S, V, 'hsv') 

*将图像从hsv颜色空间转换为RGB颜色空间
*参数1:H通道
*参数2:S通道
*参数3:V通道
*参数4:红色通道
*参数5:绿色通道
*参数6:蓝色通道
*参数7:'hsv' 
trans_to_rgb (scaledImage,ImageClear,  ImageClear, ImageRed, ImageGreen, ImageBlue, 'hsv')
compose3 (ImageRed, ImageGreen, ImageBlue, MultiChannelImage)
dev_display(MultiChannelImage)

 进阶——生成彩虹

 

步骤:生成0-255的灰度图,然后对每一个像素赋值

* 创建灰度值为0的图像
height:=180
width:=255
gen_image_const (Image, 'byte', height, width)
* 计算图像尺寸
get_image_size (Image, Width, Height)
* 指定图像像素为同一灰度值
gen_image_proto (Image, ImageCleared, 127)
* 得到图像的定义域
get_domain (Image, Domain)
* 裁剪图像得到新图像
crop_domain (Image, ImagePart)
* 获取某像素点的灰度值
get_grayval (ImagePart,width-1 , height-1, Grayval)
gray_num:=0
* 开始循环
for i := 0 to width-1 by 1
    for j := 0 to height-1 by 1
        * 设置某像素点的灰度值
        *设置Image图像中坐标为(Row,Column)的灰度值
        set_grayval (ImagePart, i, j, gray_num)
        gray_num:=gray_num+1
    endfor
    gray_num:=0
endfor

min_max_gray (ImagePart, ImagePart, 0, Min, Max, Range)
scale_image (ImagePart, scaledImage, 255/(Max - Min), (-Min)* 255/(Max - Min))
gen_image_proto (ImagePart, ImageClear, 255)
trans_to_rgb (scaledImage,ImageClear,  ImageClear, ImageRed, ImageGreen, ImageBlue, 'hsv')
compose3 (ImageRed, ImageGreen, ImageBlue, MultiChannelImage)
dev_display(MultiChannelImage)

备注说明:因为是对每一个像素进行赋值,所以运算的比较慢,可以将height和width改成比较小的值,速度会快点

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 将彩色图像换为灰度图像的原理是利用人眼对不同颜色的敏感度来计算灰度值。 人眼对红色、绿色和蓝色的敏感度不同,因此我们可以利用这一点来计算灰度值。一种常用的方法是使用以下公式: 灰度值 = 0.299 * R + 0.587 * G + 0.114 * B 其中,R、G、B 分别代表红色、绿色和蓝色分量的值。这种方法将彩色图像换为灰度图像时,会将每个像素的红色、绿色和蓝色分量的值乘上一定的系数,然后将这三个值相加得到灰度值。 使用这种方法换后的灰度图像中,灰度值越大,像素点就越亮;灰度值越小,像素点就越暗。 Halcon 中可以使用 `Rgb1ToGray` 函数将彩色图像换为灰度图像。 ### 回答2: Halcon彩色图灰度图的原理主要包括三个步骤。首先是通道分离,Halcon将彩色图像的红、绿、蓝三个颜色通道分离出来。接下来是颜色空间换,通过对每个颜色通道的加权平均,将彩色图像的颜色信息化为灰度值,从而得到灰度图像。最后一步是图像归一化,Halcon会对灰度图像进行相应的归一化处理,以确保像素值落在指定范围内。 通道分离的原理是将彩色图像的红、绿、蓝通道分离出来,使每个通道的信息独立存在。颜色空间换通过对每个通道的像素值进行加权平均来获得灰度值。一般常用的权重系数是根据人眼对各种颜色的敏感度来确定的,例如,绿色通道的系数较大,而红色通道和蓝色通道的系数较小。 图像归一化的目的是将灰度图像的像素值范围限制在0到255之间,以便更好地显示和处理图像。归一化可以调整图像的亮度和对比度,使得图像更易于观察和分析。 综上所述,Halcon彩色图灰度图的原理包括通道分离、颜色空间换和图像归一化。这些步骤使得彩色图像的颜色信息被有效地换为灰度值,方便后续的图像处理和分析。 ### 回答3: Halcon中彩色图灰度图的原理是通过将彩色图像的RGB三个通道的像素值进行加权求和,得到灰度图像的对应像素值。由于彩色图像的每个像素点由红、绿、蓝三个颜色通道组成,而灰度图像只有一个通道,因此需要将三个通道的像素值化为单一通道的灰度值。 换的方法可以使用以下公式:Gray = R * 0.299 + G * 0.587 + B * 0.114。其中,R、G、B分别表示红、绿、蓝通道的像素值,0.299、0.587和0.114是通道的权重。这是因为人眼对不同颜色的敏感度不同,红色的权重较大,绿色的权重次之,蓝色的权重较小。 具体实现时,Halcon会遍历彩色图像的每个像素点,分别获得R、G、B通道的像素值,然后按照权重公式进行加权求和得到灰度值,将该灰度值作为灰度图像中对应像素的像素值。 采用彩色图灰度图的目的是将彩色图像换为灰度图像,便于后续的图像处理任务,同时也可以减少图像的存储空间。 需要注意的是,Halcon还提供了其他灰度化方法,如最大值灰度化、平均值灰度化等,可以根据具体应用需求选择不同的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大胡子大叔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值