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、810、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中

 

 

 

 

 

 

posted @ 2022-02-08 18:39  天子骄龙  阅读(927)  评论(0)    收藏  举报