Hello Mat

 找回密码
 立即注册
查看: 7923|回复: 0

光流法应用于门禁系统——检测行人

[复制链接]

1323

主题

1551

帖子

0

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22647
发表于 2017-2-18 22:07:43 | 显示全部楼层 |阅读模式
具体代码如下:
  1. * 初始化窗口
  2. dev_update_off ()
  3. read_image (Image1, 'bicycle/bicycle_01')
  4. * 缩放图像--缩小一倍
  5. ZoomFactor := 0.5
  6. zoom_image_factor (Image1, Image1, ZoomFactor, ZoomFactor, 'constant')
  7. dev_close_window ()
  8. dev_open_window_fit_image (Image1, 0, 0, -1, -1, WindowHandle)
  9. * 显示区域的轮廓
  10. dev_set_draw ('margin')
  11. *
  12. * 产生监控区域,门禁外所在区域
  13. gen_contour_polygon_xld (ROI, [0,0,283,348,479,479] * ZoomFactor, [0,379,379,434,639,0] * ZoomFactor)
  14. gen_region_contour_xld (ROI, RegionROI, 'filled')
  15. reduce_domain (Image1, RegionROI, Image1ROI)
  16. * 主循环
  17. for I := 2 to 9 by 1
  18.     read_image (Image2, 'bicycle/bicycle_0' + I)
  19.     * 缩放图像--缩小一倍
  20.     zoom_image_factor (Image2, Image2, ZoomFactor, ZoomFactor, 'constant')
  21.     reduce_domain (Image2, RegionROI, Image2ROI)
  22.     * 光流矢量场模型
  23.     optical_flow_mg (Image1ROI, Image2ROI, VectorField, 'fdrig', 0.8, 1, 10, 5, ['default_parameters','warp_zoom_factor'], ['fast',0.8])
  24.     vector_field_length (VectorField, LengthImage, 'squared_length')
  25.     *
  26.     * 在监控的区域分割目标
  27.     min_max_gray (RegionROI, LengthImage, 0.1, Min, Max, Range)
  28.     dev_display (Image2)
  29.     if (Max > 2)
  30.         threshold (LengthImage, RegionMovement, 2, Max)
  31.         connection (RegionMovement, ConnectedRegions)
  32.         * 选择最大的目标区域
  33.         select_shape_std (ConnectedRegions, RegionMovement, 'max_area', 70)
  34.         area_center (RegionMovement, Area, RCenterNew, CCenterNew)
  35.         if (Area > 0)
  36.             * 转化为凸多边形
  37.             shape_trans (RegionMovement, ConvexHullregion, 'convex')
  38.             intersection (RegionROI, ConvexHullregion, RegionMovementInROI)
  39.             reduce_domain (VectorField, ConvexHullregion, VectorReduced)
  40.             vector_field_to_real (VectorReduced, Row, Column)
  41.             *
  42.             * 估计目标运动的方向和速度
  43.             intensity (RegionMovementInROI, Row, MeanRow, Deviation)
  44.             intensity (RegionMovementInROI, Column, MeanColumn, Deviation1)
  45.             *
  46.             * 显示结果
  47.             dev_set_line_width (1)
  48.             dev_set_color ('yellow')
  49.             dev_display (VectorReduced)
  50.             * Display region of interest
  51.             dev_set_line_width (3)
  52.             dev_set_color ('magenta')
  53.             dev_display (RegionROI)
  54.             * 显示运动的目标
  55.             dev_set_color ('green')
  56.             dev_display (RegionMovementInROI)
  57.             gen_arrow_contour_xld (Arrow, RCenterNew, CCenterNew, RCenterNew + MeanRow, CCenterNew + MeanColumn, 10, 10)
  58.             dev_display (Arrow)
  59.         endif
  60.     endif
  61.     *
  62.     copy_obj (Image2ROI, Image1ROI, 1, 1)
  63. endfor
复制代码
参考:【1】基于光流法的运动目标检测



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-11-25 22:03 , Processed in 0.211943 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表