2020-07-16


  • This example program shows how to reuse a created model.* --------------------------------------------------------* general configuration of HDevelopdev_update_window (‘off’)* image acquisition and window sizeread_image (ModelImage, ‘rings_and_nuts’)get_image_pointer1 (ModelImage, Pointer, Type, Width, Height)dev_close_window ()dev_open_window (0, 0, Width, Height, ‘white’, WindowHandle)dev_set_part (0, 0, Height - 1, Width - 1)dev_display (ModelImage)* colors and other settings for the visualizationdev_set_color (‘cyan’)dev_set_draw (‘margin’)dev_set_line_width (2)set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)disp_continue_message (WindowHandle, ‘black’, ‘true’)stop ()* ------------ start of the first application ------------* -> create the modelRow := 324Column := 279Radius := 60gen_circle (ROI1, Row, Column, Radius)gen_circle (ROI2, Row, Column, 0.5 * Radius)difference (ROI1, ROI2, ModelROI)reduce_domain (ModelImage, ModelROI, ImageROI)create_scaled_shape_model (ImageROI, ‘auto’, -rad(30), rad(60), ‘auto’, 0.6, 1.4, ‘auto’, ‘none’, ‘use_polarity’, 60, 10, ModelID)inspect_shape_model (ImageROI, ShapeModelImage, ShapeModelRegion, 1, 30)dev_clear_window ()dev_display (ShapeModelRegion)disp_continue_message (WindowHandle, ‘black’, ‘true’)stop ()* step 1: store the model (including the XLD)ModelFile := 'model_nut.sbm’write_shape_model (ModelID, ModelFile)* -> additionally, we store the model regionModelRegionFile := 'model_region_nut.png’write_image (ImageROI, ‘png’, 0, ModelRegionFile)* -> now we destroy the model and start anewclear_shape_model (ModelID)* ------------ start of the second application ------------* step 2: read the model from fileread_shape_model (ModelFile, ReusedModelID)* -> access the parameters used for creating the modelget_shape_model_contours (ReusedShapeModel, ReusedModelID, 1)get_shape_model_origin (ReusedModelID, ReusedRefPointRow, ReusedRefPointCol)get_shape_model_params (ReusedModelID, NumLevels, AngleStart, AngleExtent, AngleStep, ScaleMin, ScaleMax, ScaleStep, Metric, MinContrast)* -> access the model regionread_image (ImageModelRegion, ‘model_region_nut.png’)get_domain (ImageModelRegion, DomainModelRegion)dev_display (ImageModelRegion)dev_display (DomainModelRegion)stop ()* step 3: search for the objectsread_image (SearchImage, ‘rings_and_nuts’)dev_display (SearchImage)find_scaled_shape_model (SearchImage, ReusedModelID, AngleStart, AngleExtent, ScaleMin, ScaleMax, 0.65, 0, 0, ‘least_squares’, 0, 0.8, RowCheck, ColumnCheck, AngleCheck, ScaleCheck, Score)for i := 0 to |Score| - 1 by 1 vector_angle_to_rigid (ReusedRefPointRow, ReusedRefPointCol, 0, RowCheck[i], ColumnCheck[i], AngleCheck[i], MovementOfObject) hom_mat2d_scale (MovementOfObject, ScaleCheck[i], ScaleCheck[i], RowCheck[i], ColumnCheck[i], MoveAndScalingOfObject) affine_trans_contour_xld (ReusedShapeModel, ModelAtNewPosition, MoveAndScalingOfObject) dev_display (ModelAtNewPosition)endfordisp_continue_message (WindowHandle, ‘black’, ‘true’)stop ()clear_shape_model (ModelID)* ------------ end of the application ------------* clean updev_update_window (‘on’)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值