LabVIEW Vision-图像加范例
NI LabVIEW Vision中,使用IMAQ Add函数,对两幅图像相加,或一幅图像与常量相加,从而得到另外一幅图像。实际中图像加法应用比较少,但是学习一下,可以了解一些常用图像函数的用法。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202425.jpg图1 图像加范例前面板
图1为图像加范例的前面板。主要控件有图像A路径输入框、图像B路径输入框、图像A浏览按钮、图像B浏览按钮、Load加载、Add加、Return返回停止、图像A显示控件、图像B显示控件、图像A+B显示控件。加法运算时,每个像素的值单独通道进行数学相加,最大值为255。
下面来看一下范例的程序框图。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202426.png
图2 图像加范例程序框图
程序框图,主要使用的是顺序结构这种最简单的结构。顺序的第0帧使用的作用是创建图像缓存。创建图像缓存时,需要注意一下图像的类型。需要符合图2右边的各项目等式规定的要求。如灰度图U8加灰度图U8仍然是灰度图U8,而灰度图U8加彩色图U32则得到彩色图U32。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202426-50.png
图3 加载默认图像
顺序结构的第1帧里是使用了默认的两幅图像为图像A、图像B的路径。如果是为了演示,这个步骤是可以省略的。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202428.png
图4 选择图像、加载图像、加法运算
图像加顺序结构的第2帧,这帧里完成了加法范例的主要功能,如选择图像、加载图像、加法运算、停止返回等。里面又包含了一个5帧的顺序结构。其中第0帧用于选择图像A。第1帧用于选择图像B,如下图所示: http://visionbbs.com/data/uploads/allimg/130425/2-130425202429.png
图5 选择图像
http://visionbbs.com/data/uploads/allimg/130425/2-130425202431.png
图6 加载已经选择的图像
第2帧为加载已经选择好的图像。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202431-50.png
图7 执行加法运算
第3帧为执行加法运算。这里的选择图像、加载图像、执行加法运算,都是通过判断相应的布尔控件的真假然后执行相应的分支。这种结构的效率那是相当的低的。不推荐。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202432.png
图8 延时
第4帧为延时功能,这个作用并不是十分明显,可以考虑去掉。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202432-50.png
图9 大顺序第3帧
图9所示为最外面的大顺序结构的第3帧,这个作用是关闭图像窗口。在这里这个过程是完全没有必要的,因为并没有打开过图像浏览器,因此没有窗口可以关闭。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202433.png
图10 关闭图像引用,释放图像缓存
第4帧为关闭所有的图像引用,并释放图像内存。LabVIEW通常可以自动释放自己创建的图像引用。因此也可以不需要这个关闭指令,不过出于好的编程习惯,最好还是在程序结束时,加上释放指令。
下面是修改后一个图像加法运算,可以针对不同图像类型,以及针对不同分辨率的图像进行加法运算。主结构使用事件结构。程序请往论坛下载。 http://visionbbs.com/data/uploads/allimg/130425/2-130425202434.jpg
图11 图像加法改善程序
学习一下,谢谢啦! 学习一下,非常感谢 不错,学习了谢谢
页:
[1]