Halcon计算一个点旋转指定角度并且偏移到指定位置

怎么让一个点按指定的角度旋转并且偏移到指定的位置上去呢?

这个其实就是旋转与偏移二合一矩阵的应用。

halcon的算子vector_angle_to_rigid配合affine_trans_pixel就是这个作用


如下图所示,勇哥希望两个极耳朵中间那个点按电池的角度旋转并且位置于电池本体的中心上去。

image.png


read_image(Image, 'C:/Users/Administrator/Desktop/1.bmp')
dev_close_window()
dev_open_window(0, 0, 512, 512, 'black', WindowHandle)
disp_obj(Image, WindowHandle)
row1:=226
col1:=388
disp_circle(WindowHandle, row1, col1, 5)

r1:=78
c1:=147
r2:=72
c2:=340
disp_line(WindowHandle, r1, c1, r2, c2)
angle_lx(r1, c1, r2, c2, Angle)
tuple_deg(Angle, Deg1)


vector_angle_to_rigid(row1, col1, 0, row1, col1, Angle, HomMat2D)
affine_trans_pixel(HomMat2D, row1, col1-150, RowTrans, ColTrans)

angle_lx(RowTrans,ColTrans,row1, col1, Angle1)
tuple_deg(Angle1, Deg2)
disp_circle(WindowHandle,RowTrans, ColTrans, 5)

在上面的例子中,红线计算出电池本体的角度。

两极耳中心的点和旋转移位后本体中心的点之间的角度应该与电池本体的角度差不多。

在上面的代码中,也就是Angle与Angle1的角度应该差不多。



勇哥再举一个例子,你可以从中体会到算子vector_angle_to_rigid特有的好处。

read_image (Image, 'printer_chip/printer_chip_01')
draw_rectangle1 (200000, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
hom_mat2d_identity (HomMat2DIdentity)
*先将要转换region平移到原点位置
hom_mat2d_translate (HomMat2DIdentity, -Row1,-Column1,  HomMat2DTranslate)
affine_trans_region (Rectangle, RegionAffineTrans, HomMat2DTranslate, 'nearest_neighbor')
*之后对回到原点位的region再进行需要的平移
hom_mat2d_translate (HomMat2DTranslate, Row1+600, Column1, HomMat2DTranslate1)
affine_trans_region (RegionAffineTrans, RegionAffineTrans1, HomMat2DTranslate1, 'nearest_neighbor')
area_center (RegionAffineTrans1, Area, Row, Column)
 
 
 
*若使用vector_angle_to_rigid则只需要知道现在点以及要转到到的位置点既可以
*
vector_angle_to_rigid (Row1, Column1, 0, 600, 0, 0, HomMat2D)
affine_trans_region (Rectangle, RegionAffineTrans2, HomMat2D, 'nearest_neighbor')



对于这种点旋转的应用来说,勇哥写过许多例子。

并非一定要用halcon的算子来计算,请参考下面贴子:


三角函数在图形学里的应用(二) 点绕原点旋转(方法2)、点绕任意点旋转  

三角函数在图形学里的应用(一) 点绕原点旋转  

二维点的旋转(C#演示代码) 

二维点的旋转 续一(halcon演示代码) 

二维点的旋转 续二(Matlab演示代码) 

二维点的旋转 续三(C#演示代码) 

旋转变换(一)旋转矩阵  

坐标系旋转变换公式图解  


--------------------- 

作者:hackpig
来源:
www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864