LabVIEW如何读取文件夹中所有图像?
如何读取文件夹中所有图像我们在图像处理时,有时候需要模拟环境,即读取文件夹中的现有图像。我们也知道,图像有很多的类型,如BMP、PNG、JPG、JPEG、TIFF、JP2、GIF等。如果是使用文件夹对话框,一个一个的选择图像,那没问题可以人工选择想要的图像。又或者是使用路径来指定图像,也可以,这样也可以得到想要的图像。但是要自动的读取文件夹中的NI视觉支持的所有类型的所有图像,这个在LabVIEW环境中,是没有现成的函数的。在LabVIEW的编程》文件I/O》高级文件函数中,有一个罗列文件夹函数,这个函数可以将文件夹中的所有文件类型都罗列出来(可以包含隐藏的临时文件都罗列出来):罗列文件夹函数但是这个函数,在默认的空模式下,是会罗列所有的文件类型和文件夹的,如doc、xls等文件也会被罗列的,而这些肯定不是图像文件。所以还得使用此函数进行一定的改造才能满足要求。罗列文件夹函数接线端说明使用罗列文件夹函数的默认设置在罗列文件夹函数的输入端中,有一个模式接线端,通过模式,可以指定需要读取的文件类型。这个模式可以使用具体的字符,只要与字符相同的文件都会被罗列出来(包含文件后缀),同时也可以使用通配符?和*,?代表了一个字符,*则代表了所有字符。如*.bmp表示罗列所有类型的bmp文件,而如果是1?.png,则只读取两个字符的文件名且第一字符必须是1的png文件。罗列某个类型的所有图像罗列指定部分文件名的图像文件通过这样的方法,就可以罗列某一类的图像文件了,而要罗列多个文件类型的图像,则可以直接使用FOR循环即可满足要求,将上面罗列函数部分放置到一个FOR循环中,使用文件类型作为循环条件,即可罗列出文件夹中的所有图像类型。**** Hidden Message *****罗列文件夹中所有类型图像的LabVIEW代码
如上图所示,即为罗列文件夹中所有类型的图像的代码。这里的模式是使用了多个文件类型组合的字符串来表示的,而每个类型之间,使用;进行分隔,这里的分隔号,必须使用统一的且不需要使用空格等字符(因为空格有可能是文件名本身的一个字符),以方便在后面的电子表格字符串至数组转换中能正常使用。在后面则使用电子表格字符串至数组转换函数,将模式中指定的图像文件类型,转换成数组,通配号使用;,这样就可以得到一个文件类型的数组,然后接入到FOR循环中,并使用此条件为循环条件且索引模式的值给FOR循环中的罗列夹函数。当然因为罗列文件名输出的是一个数组,因此还需要将新罗列的函数插入到数组中。罗列文件夹中的所有图像效果展示NI视觉支持常规的图像文件,如bmp、png、jpg、jp2、tif等类型的文件。至于其它一些文件,则需要确认是否支持,不被支持文件也是无法使用的。另外,jpg/jpeg、tif/tiff实际上只是文件格式的缩写,但属于不同的图像类型,如果文件夹同时存在jpg/jpeg、tif/tiff,则需要都罗列才行。
以下为LabVIEW2014SP1源代码,解压密码请扫描论坛顶部的微信公众号(账户:石鑫华视觉),发送”密码“获取。
石鑫华视觉网http://shixinhua.com,工业相机、工业镜头、机器视觉光源、光源控制器、图像处理、系统集成服务商 石鑫华视觉网http://shixinhua.com,工业相机、工业镜头、机器视觉光源、光源控制器、图像处理、系统集成服务商 学习,学习。我是一个初学者。 买工业相机、机器视觉光源、工业镜头、机器视觉教程,就到机器视觉商城http://visionbbs.com 和监督胡大夫的疯狂的名称可持续 參考一下, 謝謝!! :)学习一下 机器视觉商城http://visionbbs.com,中国真正的机器视觉与图像处理网上商城 谢谢楼主分享。thank you very much . 机器视觉论坛http://visionbbs.com,最专业的LabVIEW机器视觉与NI图像处理论坛 学习,学习。我是一个初学者。