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

Halcon DLT是一种用于图像处理和机器视觉的软件库。在Halcon DLT中,可以使用离散点信息创建热力图,并通过一系列步骤来查看热力图。 首先,需要为每个离散点创建一个Mask。Mask是一个圆形区域,其半径表示该点对最终热力图像产生影响的区域半径。中心点的权重为1,边缘部分的权重逐渐减小,可以使用线性变化或二次曲线等方式进行渐变。\[1\] 然后,将所有离散点的Mask叠加,生成一幅灰度图像。相邻Mask的重叠部分进行权重累加操作,最终灰度图中每个像素点的数值大小就是所有与其相关的Mask中的权重之和。离散点密度越高的地方,灰度图中像素点的数值越高,即图像越亮。\[2\] 在Halcon DLT中,可以按照以下步骤来生成和查看热力图: 1. 生成一个灰度图像,像素值范围为0-255。 2. 对每个像素点赋予相同的灰度值,例如127。 3. 根据图像的尺寸进行裁剪,得到一个新的图像。 4. 循环遍历图像的每个像素点,设置其灰度值。可以使用嵌套的循环来实现。 5. 最后,将图像换为RGB格式,并显示出来。可以使用Halcon DLT提供的函数来实现。\[3\] 通过以上步骤,可以生成并查看Halcon DLT中的热力图。 #### 引用[.reference_title] - *1* *2* [热力图(HeatMap)实现](https://blog.csdn.net/weixin_29861235/article/details/111989431)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [halcon灰度图热力图 / 真彩色——绘制彩虹](https://blog.csdn.net/sunnyrainflower/article/details/129410873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大胡子大叔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值