石鑫华视觉 发表于 2020-7-6 11:39:39

LabVIEW打开与保存浮点型图像

那天有人问我,LabVIEW如何保存浮点型图像?因为我们常用的基本都是U8类型的图像,连U16、I16之类的都很少用到,更别说浮点型了。这个在我的印象中,好像只有复数CSG和单精度浮点型图像SGL这种图像类型是浮点型的,而且是在LabVIEW环境中可以看到有支持相应的图像类型的功能:


问的如何保存浮点型图像


LabVIEW+NI VISION环境支持的浮点类型有单精度SGL的灰度以及CSG的复数图像。

但是我们查看Read File和Write File函数可以知道,Read File函数可以读SGL、CSG等类型的图像,只是不知道这个如果读了浮点型图像,到底是不是用浮点型来表示,还是直接截取整数部分来显示,也不是很清楚,因为我手上连一张所谓的浮点型图像都没有,没有办法测试。

读取文件上有写SGL和CSG类型的图像

另外对于Image显示控件,看其Palette,也没有明显的表示有可以显示SGL、CSG类型的图像,如果能显示,那么是什么类型呢?我们在这里可以用两个For循环模拟生成一幅400-300的SGL浮点型图像来看看效果

我们看到,对于SGL浮点型,其显示为Float图像类型,Palette用的是仍然是Grayscale灰度类型,显示的值则为小数类型。

而对于保存图像函数,则完全连SGL、CSG的类型都不支持,只能整型的:

Write File PNG with Vision info
写文件函数是个多态VI,可以保存到BMP、JPG、JP2、PNG、PNG带视觉信息、TIFF等类型的图像,参看其支持的图像类型,PNG带视觉信息的类型支持的图像类型是最多的,但是不支持SGL和CSG类型。我们可以用上面生成的SGL图像来保存一下看看效果:

直接保存SGL出错,无效的图像类型,不能保存SGL

将SGL强制转换为U8后,则可以保存。保存后的图像为8位的图像类型,不再保留浮点数据。

保存后的图像属性
通过上面的验证,那么我们也就知道了,要想通过NI VISION读浮点型的图像,是可以读的,也可以显示。但是并不能用写函数来保存浮点型的图像。
而要想保存浮点型图像或其数据类型,那么我们还得想一下办法才行。
方法一:
**** Hidden Message *****

158545614 发表于 2020-9-22 10:13:00

石鑫华视觉网http://shixinhua.com,工业相机、工业镜头、机器视觉光源、光源控制器、图像处理、系统集成服务商

金魏2799 发表于 2022-6-28 15:12:03

本帖最后由 金魏2799 于 2022-6-28 15:15 编辑

正遇到此类问题,只能手动保存.aipd格式,学习一下如何自动保存。
汗。。。

810120180 发表于 2022-1-25 17:33:16


学习 谢谢学习 谢谢学习 谢谢学习 谢谢学习 谢谢

WEIGUIJIN 发表于 2020-9-21 11:49:00

学习学习~~~~~~~~~~~

永远117837 发表于 2021-1-28 14:20:50

学习 谢谢学习 谢谢学习 谢谢学习 谢谢学习 谢谢

11911977 发表于 2021-2-4 11:57:12

又学习到新知识

fadalea 发表于 2021-2-9 08:19:29

kankan,thanks

Hong大圣 发表于 2021-3-12 16:12:43

查看看看看安安柯尼卡,谢谢谢谢

zycrank 发表于 2021-4-8 09:51:04

学习学习,认真学习

Luckin-ding 发表于 2021-4-12 13:21:25

学习一下1111111

jshyydbk 发表于 2021-4-28 21:49:21

学习学习,不知道怎么保存,困扰中
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: LabVIEW打开与保存浮点型图像

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