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

这么简单的例子为什么对不齐

[复制链接]
h030162 发表于 2025-11-17 13:30:50 | 显示全部楼层 |阅读模式
  1. dev_open_window (0, 0, 500, 400, 'black', WindowHandle)
  2. read_image (Pen01, 'pen/pen-01.png')
  3. read_image (Pen29,'pen/pen-29.png')
  4. get_image_size (Pen01, Width1, Height1)
  5. get_image_size (Pen29, Width2, Height2)
  6. Message := 'Pen01 size: ' + Width1 + 'x' + Height1 + ', Pen29 size: ' + Width2 + 'x' + Height2
  7. Col1:=[84,272,88]
  8. Row1:=[94,211,214]
  9. Col2:=[96,285,104]
  10. Row2:=[77,195,198]
  11. disp_image(Pen01, WindowHandle)
  12. disp_circle(WindowHandle, Row1, Col1, [5,5,5])
  13. disp_image(Pen29, WindowHandle)
  14. disp_circle(WindowHandle, Row2, Col2, [5,5,5])
  15. hom_mat2d_identity (HomMat2D)
  16. vector_to_rigid (Col1, Row1, Col2, Row2, HomMat2D)
  17. **vector_to_rigid (Row1, Col1, Row2, Col2, HomMat2D)
  18. **hom_mat2d_invert (HomMat2D, HomMat2D)
  19. hom_mat2d_to_affine_par(HomMat2D, Sx, Sy, Phi, Theta, Tx, Ty)
  20. Message := 'Scale: (' + Sx + ', ' + Sy + '), Rotation: ' + Phi*180/3.14159 + '°, Translation: (' + Tx + ', ' + Ty + ')'
  21. affine_trans_image_size (Pen01, ImageTranslated, HomMat2D, 'constant', Width2, Height2)
  22. dev_clear_window()
  23. disp_image(ImageTranslated, WindowHandle)
  24. sub_image (ImageTranslated, Pen29, ImageDiff, 1, 128)
  25. disp_image(ImageDiff, WindowHandle)
复制代码

进行逆变换可以对齐,但是为什么?另外vector_to_rigid后面的参数col1,row1,col2,row2对吗?
其他地方好多都是row1,col1,row2,col2. 小白求解答,先谢谢各路大神了!

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
18861175562 发表于 2025-11-17 13:59:13 | 显示全部楼层
row1,col1,row2,col2 这样完全没问题     好像col1,row1,row2,col2 也对 搞不明白  理解不了 但是确实结果是对的
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| h030162 发表于 2025-11-17 14:03:21 | 显示全部楼层
我试过了row1,col1,row2,col2是对的,col1,row1,col2,row2不对,但是官方文档中是px,py,qx,qy, 如何x对应col,y对应row,那就是col1,row1,col2,row2.那就不对了。这是为什么?官方文档不可能写错,但是为什么按他的写法就是对不上
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
moonwell0106 发表于 2025-11-17 17:27:52 | 显示全部楼层
这些矩阵计算都是在Edge Centered坐标下进行的,意味着你要先给row,col坐标都加个0.5pixel从Pixel Centered坐标系转过去再带进vector_hom_rigid之类的算子计算,并且row作为x,col作为y。具体看Halcon几种坐标系说明。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| h030162 发表于 2025-11-18 15:34:31 | 显示全部楼层
moonwell0106 发表于 2025-11-17 17:27
这些矩阵计算都是在Edge Centered坐标下进行的,意味着你要先给row,col坐标都加个0.5pixel从Pixel Centered ...

谢谢!
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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