石鑫华视觉 发表于 2019-7-6 17:09:21

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

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

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

左边的框图方法:获取彩色图像,然后使用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或之后版本,回复可下载:
**** Hidden Message *****

xuzengbing 发表于 2021-4-2 14:24:00

非常感谢,正在查找相关案例

wenwen2022 发表于 2022-3-18 13:40:13

非常感谢,非常感谢,正需要这样的例子,非常感谢了

overciew3477 发表于 2022-10-26 21:27:22

非常感谢十分实用
页: [1]
查看完整版本: 彩色图像得到RGB三个灰度二维数组的两种方法效率比较

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