halcon-读取AVI视频
在HDevelop中
方法一
open_framegrabber ('DirectFile', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'default', 'D:/bb/tu/aa.avi', 'default', -1, -1, AcqHandle) *作用打开AVI视频 *参数1:HALCON图像采集接口名称,即相应DLL * 'DirectFile' AVI视频文件 *参数9:每像素和图像通道传输的位数(通常为5、8、10、12或16),-1:特定于设备的默认值 * *参数10:颜色模式 *参数13:文件路径 *参数17:句柄 grab_image_start (AcqHandle, -1) *从句柄指定视频中开始读取数据 *参数1:句柄 set_framegrabber_param (AcqHandle, 'grab_timeout', 500) *设置超时时间 *说明:halcon在读取视频时,很容易发生超时错误,所以最好设置一下超时时间 dev_open_window(10,10,500,300,'black',WindowHandle) while (true) try grab_image_async (Image, AcqHandle, -1) *从指定的图像采集设备异步采集一幅图像 *参数1:保存图像的变量 *参数2:视频句柄 *参数3:异步抓取开始和图像传送之间的最大容许延迟[ms]。 * 默认值: -1.0 * 推荐值: -1.0, 20.0, 33.3, 40.0, 66.6, 80.0, 99.9 dev_display(Image) catch(exception) continue endtry endwhile
方法二
open_framegrabber ('DirectFile', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'default', 'D:/bb/tu/aa.avi', 'default', -1, -1, AcqHandle) get_framegrabber_param (AcqHandle, 'first_frame', Value0) *获取第一帧序号,保存到参数3 get_framegrabber_param (AcqHandle, 'last_frame', Value1) *获取最后帧序号,保存到参数3 set_framegrabber_param (AcqHandle, 'grab_timeout', 500) *设置超时时间:500ms dev_open_window(10,10,500,300,'black',WindowHandle) grab_image_start (AcqHandle, -1) for i:=Value0 to Value1-1 by 1 try grab_image (Image, AcqHandle) dev_display (Image) catch(exception) continue endtry endfor
在QtCreator中