wandong2014 发表于 2015-5-16 16:51:04

Vision 写视频

有一个循环采集图像,当某个事件发生时想将图像写成视频,并且视频保存名字与当前时间有关。由于写视频需要在一个while循环中,但是写视频仅仅需要create AVI一次,但是以后write AVI则需要不断通过create AVI的引用在循环中写视频。因此不想每次循环时都去Create AVI,因为第二次时该AVI就已经存在了,什么好办法在循环中仅仅create AVI一次,write AVI则每次利用create AVI的引用?

石鑫华视觉 发表于 2015-5-16 21:03:34

将WHILE框到Write AVI外面就可以了。引用持续有效

wandong2014 发表于 2015-5-16 21:10:49

本帖最后由 wandong2014 于 2015-5-16 21:12 编辑

石鑫华视觉 发表于 2015-5-16 21:03 static/image/common/back.gif
将WHILE框到Write AVI外面就可以了。引用持续有效

版主的意思应该是将Create AVI放到While循环外面吧?问题是在While循环中才能确定要写的AVI文件名(因为与当前时间有关),因此Create AVI不能放到While外面。
这部分完整过程是这样的:有一个While循环,循环内部有一个事件结构,在事件1被触发时,要获取当前时间然后作为文件名Create AVI,然后开始将图像Write AVI,然后当事件2被触发时停止Write AVI。
现在不知道如何让Create AVI在循环内仅执行一次(因为以后直接Wite AVI即可,不需要重新Create AVI)。

石鑫华视觉 发表于 2015-5-17 11:00:09

那你就将Create AVI函数放到WHILE里,引用使用移位寄存器,使用判断引用是否有效函数判断引用有无效。如果无效时,则使用Create函数,如果有效时,直接使用引用。NI很多图像例子都是这样做的,无效时新建引用,有效时直接使用引用。

wandong2014 发表于 2015-5-17 11:46:29

石鑫华视觉 发表于 2015-5-17 11:00 static/image/common/back.gif
那你就将Create AVI函数放到WHILE里,引用使用移位寄存器,使用判断引用是否有效函数判断引用有无效。如果无 ...

版主果然经验丰富,我昨天专门用一个变量作为标志解决了,循环中首先判断变量(BOOL)真假,初始化为真,一旦Create就设置为假。版主的判断引用是否有效更方便,变量都省了,但是我好像没找到这个函数(判断引用是否有效)啊,这个函数在哪啊

石鑫华视觉 发表于 2015-5-18 09:41:50

wandong2014 发表于 2015-5-17 11:46 static/image/common/back.gif
版主果然经验丰富,我昨天专门用一个变量作为标志解决了,循环中首先判断变量(BOOL)真假,初始化为真, ...

因为出来的是布尔量,所以在布尔量里,一个三角形符号

wandong2014 发表于 2015-5-18 09:56:08

石鑫华视觉 发表于 2015-5-18 09:41 static/image/common/back.gif
因为出来的是布尔量,所以在布尔量里,一个三角形符号

不知道版主的lV是哪个版本,我的2012布尔里没有。里面的三角形符号只有:(1)非;(2)数组元素与操作;(3)数组元素或操作。没有发现判断引用是否有效的VI啊?

石鑫华视觉 发表于 2015-5-18 18:47:05

哦,那就在比较里。

wandong2014 发表于 2015-5-20 11:09:43

石鑫华视觉 发表于 2015-5-18 18:47 static/image/common/back.gif
哦,那就在比较里。

找到了,但是好像Create AVI创建的AVI引用用这个VI判断出来的结果是非法引用啊
页: [1]
查看完整版本: Vision 写视频

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