石鑫华视觉论坛

 找回密码
 注册会员
查看: 3745|回复: 3

[原创] 彩色图像得到RGB三个灰度二维数组的两种方法效率比较

[复制链接]
  • TA的每日心情

    4 小时前
  • 签到天数: 3384 天

    连续签到: 6 天

    [LV.Master]2000FPS

    发表于 2019-7-6 17:09:21 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

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

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

    x
    彩色图像得到RGB三个灰度二维数组的两种方法效率比较

    某些情况下,采集了一幅彩色图像,但是最终我们可能需要得到彩色图像中的RGB每个平面的灰度二维数组。这个在NI LabVIEW+VISION中,有多种方法可以实现这个转换,本论坛提供了两种方法,并对其效率进行了简单的验证:

    彩色图像得到RGB三个灰度二维数组的两种方法效率比较

    彩色图像得到RGB三个灰度二维数组的两种方法效率比较

    左边的框图方法:获取彩色图像,然后使用ColorImagetoArray函数,将彩色图像转换为U32的数组。然后再使用IntegerToColorValue函数,将U32转换为含RGB三元素簇的二维数组,之后使用嵌套两个for循环,将二维数组簇中的RGB三元素分别提取出来组合成需要的R二维数组、G二维数组、G二维数组。图上读取了一幅2000万像素的彩色图像,用时980ms(运行多次,基本上是970-1000ms之间的范围,也可以对FOR循环配置一些并行执行,不过效率提高不明显)。
    右边的框图的方法:获取彩色图像,然后使用ExtractColorPlanes函数提取R、G、B三个灰度平面,之后再使用ImagetoArray将RGB的灰度图像直接转换为RGB的二维数组,过程要简单许多。从执行的效率来看,耗时大概793ms(运行多次,基本上是在770-810ms之间)。可以看到,右边的框图不仅简单一些,而且执行效率要略高于左边的框图。
    不过可以看到,无论哪种方法,效率都不高,都需要秒级的耗时了。

    以下为相应的示例
    LabVIEW2019+VISION2019或之后版本,回复可下载:
    游客,如果您要查看本帖隐藏内容请回复

    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2021-4-26 17:03
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]200FPS

    发表于 2021-4-2 14:24:00 | 显示全部楼层 来自:湖北省武汉市 电信
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]100FPS

    发表于 2022-3-18 13:40:13 | 显示全部楼层 来自:安徽省合肥市 电信
    非常感谢,非常感谢,正需要这样的例子,非常感谢了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2022-10-26 21:27:22 | 显示全部楼层 来自:山东省青岛市 中国海洋大学
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    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-22 12:49

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

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