资源描述:
《halcon 中光流法跟踪的简单应用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、halcon中光流法跟踪的简单应用 楼主#更多发布于:2013-08-1715:17*Thisexampleprogramshowshowtouse optical_flow_mgtocomputethe *opticalflowinanimagesequenceandhow tosegmenttheopticalflow. 这个事例是应用optical_flow_mg这个算子来在一个图像序列中计算其光溜,并且分割其运动物体 dev_update_off() 把程序窗口、变量窗口、显示窗体变为off状态 dev_clos
2、e_window() 关闭显示窗口 l Initializetheimagesequence l 初始化图像序列. read_image(Image1,'xing/xing000') 读入图像 dev_open_window_fit_image (Image1,0,0,-1,-1,WindowHandle) 打开一个新的带有所给图像纵横比图像窗口 参数1.被给的图像2&3是以左上角为原点的所给窗口新的位置3&4是窗口的最小和最大限制值5.新的窗口句柄。个人理解:这个算子就是按照所给图像的尺寸自己在基础上可以缩放大小。
3、注意:设置之后在以后的新的窗体上都会默认应用。 l Setthedisplayparametersforthevectorfield. l 设置显示的矢量场参数 dev_set_paint (['vector_field',6,1,2]) 定义灰度值输出模型,,灰度值得输出模型具体要参见set_paint帮助文档上的,更具体详细。注意:在使用这个算子是输出为其他编程工具的时候会有不同的这个具体要仔细参见文档。 dev_set_draw('margin') forI:=1to587by1 l Readthecurre
4、ntimageoftheimagesequence. l 读出连续的图像序列 read_image(Image2,'xing/xing'+I$'03') l Computetheopticalflow. l 计算光流 optical_flow_mg (Image1,Image2,VectorField,'fdrig',0.8,1,8,5,'default_parameters', 'accurate') 计算两幅图片的光流场。参数:1&2是输入的两个单色图片序列的连续图片,3为输出的光流结果4是求取光流三种算
5、法的选取其中的应用5,高斯平滑初始偏差初始值6积分滤波偏差初始值7平滑项在数据项中的权重8梯度恒定性相对于灰度值恒定性的权重9多栅算法的名字10多栅算法的变量 l Segmenttheopticalflowvectorfield. l 分割光流矢量场 threshold (VectorField,Region,1,10000) 分割矢量场 * Displaythecurrentimageofthesequence. Notethatthismeansthat * theopticalflowvectors
6、willalsobedisplayedatthe"end"ofthe movement *ofthe objectsintheimage. 显示图像序列,标注在图像数据中光流场中移动的物体会被显示 dev_display(Image2) l Displaytheopticalflow. l 显示光流图像 dev_set_color('yellow') dev_set_line_width(1) dev_display(VectorField) l Displaythesegmentedopt
7、icalflow. l 显示分割后的光流 dev_set_color('green') dev_set_line_width(3) dev_display(Region) l Copythecurrentimagetothepreviousimageofthesequence l 把先前的图像序列复制到现在的图像序列中 l 完成的功能就是序列图像的更新(个人见解). copy_obj(Image2,Image1,1,1) endfor