设置首页收藏本站
开启左侧

halcon跟随定位有误差

[复制链接]
wh8888 发表于 2024-4-27 10:44:17 | 显示全部楼层 |阅读模式
halcon跟随定位有误差
  1. list_files ('F:/2023桌面/board', ['files','follow_links'], ImageFiles)
  2. tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima|hobj)$','ignore_case'], ImageFiles)
  3. read_image (Image, ImageFiles[0])

  4. dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
  5. dev_display (Image)
  6. get_image_pointer1 (Image, Pointer, Type, Width, Height)
  7. *获取模板抠图
  8. gen_rectangle1 (ROI_0, 196.724, 187.256, 290.883, 404.241)//抠图大小
  9. area_center (ROI_0, Area, Row, Column) //获取抠图 中心的行列坐标
  10. reduce_domain (Image, ROI_0, ImageReduced)//单区域抠图
  11. *add_channels (ROI_0, ImageReduced, GrayRegions)//多区域抠图
  12. *生成模板
  13. inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 4, [25,40])//查看模板
  14. *create_shape_model (ImageReduced, 10, 0, 6.29, 0.03, 'none', 'use_polarity', [25,40], 10, ModelID)//已抠图区域生成模板

  15. create_shape_model (ImageReduced, 5, rad(0), rad(360), rad(0.01), ['none','no_pregeneration'], 'use_polarity', [30,30,0], 10, ModelID)

  16. get_shape_model_contours (ModelContours, ModelID, 1) //获取模板
  17. hom_mat2d_identity (HomMat2DIdentity)//单位矩阵
  18. gen_rectangle2 (ROI_000, 140, 152, 0, 8, 30) //区域跟随
  19. *gen_rectangle2_contour_xld (Rectangle, 140, 302, 0, 163, 7) //XLD跟随 Y 140
  20. dev_get_window (WindowHandle)
  21. dev_set_line_width (2)
  22. set_display_font (WindowHandle, 20, 'mono', 'true', 'false')

  23. for Index := 0 to |ImageFiles| - 1 by 1
  24. read_image (Image, ImageFiles[Index])
  25. *find_shape_model (Image, ModelID, 0, rad(360), 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Score)
  26. find_shape_model (Image, ModelID, rad(0), rad(360), 0.5, 0, 0.5, 'least_squares', [5,1], 0.95, Row1, Column1, Angle, Score)
  27. if (|Score| > 0)
  28.    
  29. *模板仿射变换
  30. hom_mat2d_translate (HomMat2DIdentity,Row1, Column1, HomMat2DTranslate)//平移矩阵
  31. hom_mat2d_rotate (HomMat2DTranslate, Angle, Row1, Column1, HomMat2DRotate)//旋转矩阵
  32. affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2DRotate)
  33. *跟随1,使用vector_angle_to_rigid算子 刚体变换
  34. vector_angle_to_rigid ( Row, Column, 0, Row1, Column1, Angle, HomMat2D)
  35. affine_trans_region (ROI_000, RegionAffineTrans, HomMat2D, 'nearest_neighbor')//区域跟随

  36. dev_display (Image)
  37. dev_set_color ('red')
  38. dev_display (ContoursAffineTrans)
  39. dev_set_color ('green')
  40. dev_display (RegionAffineTrans)

  41. stop ()

  42. endif
  43. endfor
  44. clear_shape_model (ModelID)
复制代码
NG.png OK.png

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Yanlf 发表于 2024-4-27 16:22:33 | 显示全部楼层
左图是右图旋转的吗?如果不是的话,焊脚也是有偏差的啊
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| wh8888 发表于 2024-4-28 08:36:31 | 显示全部楼层
Yanlf 发表于 2024-4-27 16:22
左图是右图旋转的吗?如果不是的话,焊脚也是有偏差的啊

同一张图角度变换
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
lanmp 发表于 2024-4-28 16:39:17 | 显示全部楼层
wh8888 发表于 2024-4-28 08:36
同一张图角度变换

U203下面那第二根白线怎么不见了
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Yanlf 发表于 2024-4-30 07:51:12 | 显示全部楼层
lanmp 发表于 2024-4-28 16:39
U203下面那第二根白线怎么不见了

是的,应该不是同一幅图像的,所以焊脚有误差很正常
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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