注册登陆后可查看附件和大图,以及购买相关内容
您需要 登录 才可以下载或查看,没有账号?注册会员
x
彩色图像得到RGB三个灰度二维数组的两种方法效率比较
某些情况下,采集了一幅彩色图像,但是最终我们可能需要得到彩色图像中的RGB每个平面的灰度二维数组。这个在NI LabVIEW+VISION中,有多种方法可以实现这个转换,本论坛提供了两种方法,并对其效率进行了简单的验证:
彩色图像得到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或之后版本,回复可下载:
|