图像处理中的多线程处理
对于现在的计算机而言,核心数目都比较多,内存也比较大,所以一般都可以很轻松的应对多线程的程序。而图像处理中,要想获得较高的效率,也应该考虑使用多线程。除非一定需要执行顺序结构,不然都是应该考虑使用并行的多线程结构的。这样对于生产效率的提高是非常有利的。下图是简单的表现了一下并行与顺序执行时的耗时。执行了一个找圆与测量最高绿叶尺寸。顺序执行时,耗时约为7ms,并行执行时约耗时5ms。当然这里使用的函数都是耗时比较少的。而如果使用的是匹配等函数,耗时就会比较多,如果使用并行将会有较大时间的改善。
LabVIEW天生的多线程处理编程平台
NI Vision Assistant视觉助手生成VI时可选是否优化并行执行
在NI视觉助手生成VI时,可以选择是否使用优化代码为并行执行时,如果优化代码,则视觉助手生成的代码将尽可能的并行执行程序。下面的图像显示了使用优化代码对于并行执行与不优化代码前后的执行时间比较。
为并行执行优化代码后的执行时间上
上面的例子是找图中的圆环的内外圆,并行多线程时,执行时间约在2ms内,通常为1ms。而顺序执行时,则处理时间在2ms~14ms内都有可能,大部分都牌7ms的水平。由此可见,并行执行还是非常有效率优势的。
当然并行并不简单的指图像处理函数之间的并行,也可以是其它的执行机构的并行。如拿料、上料、取料等相互协调工作的同时,又相互独立,并不一定需要某一个动作完成了以后再去执行另一个动作。