石鑫华视觉论坛

 找回密码
 注册会员
查看: 7374|回复: 10

[原创] 如何将U32颜色值转换为RGB表示的颜色分量值

[复制链接]
  • TA的每日心情
    奋斗
    2 小时前
  • 签到天数: 3387 天

    连续签到: 9 天

    [LV.Master]2000FPS

    发表于 2017-3-3 18:06:19 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

    x
    如何将U32颜色值转换为RGB表示的颜色分量值
    在很多软件中,一种颜色值,通常使用无符号的32位整形来表示,如xFFFFFF(白)、x000000(黑)这样的值,使用这种方式表示时,一种颜色只需要一个值即可表示。而一般我们认知颜色,可能是需要使用RGB三个U8分量来表示,当然也可能是HSLHIS等颜色模式。这时候就需要将一个值的U32转换成三个值的U8来表示。有时候需要将颜色值转换成对应的三色的RGB值。
    U32的一个值,,其实可以认为是RGB三个值拼接起来的,因为颜色值的格式是固定的,使用16进制时,就是6位来表示的。因此高2位表示了红色、中两位表示了绿色、低两位表示蓝色。如xD5FF00这样的黄色,其RGB分量就分别是十六进制的xD5xFFx00,即十进制的2132550。如果没有相应的函数,只发将U32值转换成16进制的字符串,然后按2位拆分,再转换成10进制数值就可以得到RGB值。当然,在NI VISION中是有现成的U32转换成RGB值函数的。在这里使用IMAQ IntegerToColorValue函数即可:

    IMAQ IntegerToColorValue在程序框图中的位置

    IMAQ IntegerToColorValue在程序框图中的位置
    IMAQIntegerToColorValue在程序框图中的位置

    IMAQ IntegerToColorValue函数的功能与接线端

    IMAQ IntegerToColorValue函数的功能与接线端
    IMAQIntegerToColorValue函数的功能与接线端
    下面来看一个实例:

    IMAQ IntegerToColorValue函数将U32值转换成RGB分量模式

    IMAQ IntegerToColorValue函数将U32值转换成RGB分量模式
    IMAQIntegerToColorValue函数将U32值转换成RGB分量模式
        函数使用相当简单,只需要输入相应的颜色值即可,U32 value接线端创建常量或输入控件后,默认是16进制输入的。函数可以针对单个的U32值、U32的一维数组、U32的二维数组进行转换。
    LabVIEW2014SP1版下载
    游客,如果您要查看本帖隐藏内容请回复

    上面提到的一种不用VISION的方式实现见下面的帖子:
    LabVIEW将表示颜色的U32值转换为RGB对应的分量值LabVIEW实现方式


    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-3-11 09:14
  • 签到天数: 42 天

    连续签到: 1 天

    [LV.5]500FPS

    发表于 2017-8-30 23:07:10 | 显示全部楼层 来自:四川省成都市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-10-22 06:21
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]200FPS

    发表于 2017-9-3 16:17:02 | 显示全部楼层 来自:广东省珠海市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-4-22 11:18
  • 签到天数: 92 天

    连续签到: 1 天

    [LV.6]600FPS

    发表于 2017-10-5 20:14:41 | 显示全部楼层 来自:湖北省 移动数据上网公共出口
    工业相机,进口CCD,,国产CMOS,USB,1394,GIGE,机器视觉商城http://visionbbs.com可以选购
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-5-26 16:09
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]200FPS

    发表于 2019-5-26 17:50:53 | 显示全部楼层 来自:山西省太原市 电信
    为什么将图像转换成u64位之后生成的簇显示各个通道的值都为0
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-10-27 18:17
  • 签到天数: 239 天

    连续签到: 1 天

    [LV.7]700FPS

    发表于 2019-7-5 10:11:56 | 显示全部楼层 来自:河北省石家庄市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2022-8-21 18:37
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]900FPS

    发表于 2019-7-12 08:15:06 | 显示全部楼层 来自:福建省福州市 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-7-19 08:50
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]400FPS

    发表于 2019-7-23 13:37:49 | 显示全部楼层 来自:广东省深圳市南山区 电信
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2022-3-18 13:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]100FPS

    发表于 2022-3-18 14:13:43 | 显示全部楼层 来自:安徽省合肥市 电信
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

    LabVIEW HALCON图像处理入门教程(24.09)
    石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
    《LabVIEW Vision函数实例详解2020-2024》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-11-25 10:56

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表