前言
- 需要下载安装OpenCV工具包的朋友,请前往 此处 ;
- 系统要求:Windows系统,LabVIEW>=2018,兼容32位和64位。
图片文件读写
对于读写图片文件,需要用到的VI,在函数选板>>Addons>>Molitec>>OpenCV>>imgcodes,位置如下图。
1. 读写单张图片
读取单张图片,可以使用 imread.vi 实现。支持多种图片格式,包括JPG、PNG、BMP等等。写入图片则使用 imwrite.vi 实现,同样支持多种图片格式。
下图展示的是:读取一张JPG格式图片,在LabVIEW控件里显示,最后再保存成PNG格式的图片。
如果你不确定某种格式的图片是否支持读写,可以使用选板最末的 haveImageReader 和 haveImageWriter 对图片文件先行测验。
2. 读写图片集
对于图片集文件,比如TIFF格式,可以使用 imreadmulti 和 imwritemulti 进行读写。使用 imcount 还可以获取文件中包含的图片数量。
下图展示的是:读取TIFF文件中从0开始的所有图片,在LabVIEW中显示(图片数组),然后颠倒顺序,写入到新的TIFF文件中。
图片编解码
有时候,我们并不需要把图像保存成文件,而是直接编码成相应格式的二进制流,以方便后续操作。尤其在网络通讯应用情景下,这样做可以提高传输效率,并且避免反复硬盘读写的麻烦。
图片编解码的实现,需要使用 imencode 和 imdecode 函数。图片集解码,需要使用 imdecodemulti 来实现。
下图展示的是:将某个存储图片的Mat对象,按照JPG格式编码成bytes,然后再从bytes解码,重新变回Mat图像。(注意 imencode 的格式参数必须加“点”)
类似的,如果bytes包含多张图片,可以用 imdecodemulti 实现多图解码,如下图。(目前没有“多图编码”模式)
总结
- 本系列博文作为LabVIEW工具包—OpenCV的教程,将以专栏的形式陆续发布和更新。
- 对工具包感兴趣的朋友,欢迎下载试用:秣厉科技 - LabVIEW工具包 - OpenCV
- 各位看官有什么想法、建议、吐槽、批评,或新奇的需求,也欢迎留言讨论。