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改成比较小的值,速度会快点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大胡子大叔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值